Wordマクロでは、文書を非表示で開けます。
たとえば、上書き翻訳用の一括置換ソフト「ぱらぱら」 では、Wordで置換用の辞書(用語集)を作成した場合に、辞書の内容を取得するためにWordの辞書ファイルを非表示で開きます。
ただ、何らかの理由で処理が途中で止まったりした場合、非表示のファイルがそのままWordに残されてしまうことがあります。
すると、表示されていないのに2個のファイルが開かれているという状態になってしまったりします。ファイルをすべて閉じてWordアプリケーションを閉じ たつもりなのに、実際にはWordが閉じていないというおかしな状況が生じます。私のマクロでも意図せずにそのようになってしまうことがありました。
今回の記事では、非表示で開かれているファイルのみを自動的に閉じるマクロを紹介します。
今後のアドインのアップデートで、この機能を実装していきます。
<目次>
このマクロでできること
現在開かれている文書のうち非表示の文書を特定し、その文書を保存をせずに閉じます。
マクロの解説
おなじみのFor Each Next ステートメントです。5行目と10行目。
文書の表示・非表示は、6行目のActiveWindow.Visible プロパティで判定します。
マクロ
Sub 非表示の文書を閉じる() Dim myDoc As Document For Each myDoc In Documents If myDoc.ActiveWindow.Visible = False Then myDoc.Close SaveChanges:=wdDoNotSaveChanges DoEvents End If Next End Sub