「word2010 開いているファイルを閉じるマクロ」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
開いているファイル・文書を閉じるWordマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。
「word2010 開いているファイルを閉じるマクロ」
という検索キーワードだけでは、何を探していらしたのか詳細がわかりませんが、ここでは、開いている全文書・全Wordファイルを一気に閉じる、2つのWordマクロをご紹介します。
ループを回して開いている文書をすべて閉じるサンプルマクロ
一つ目はプログラミング経験のある方が思いつきやすいマクロです。
Dim doc As Document
For Each doc In Documents
doc.Close
Next
End Sub
開いている全文書に対してループを回して、
For Each doc In Documents
順番に閉じていきます。
doc.Close
上記のマクロを実行すると、保存していない文書の場合には、保存するかどうかを確認するメッセージボックスが表示されます。
保存するかどうかは引数で指定しておくことも可能です。DocumentオブジェクトのCloseメソッドには、SaveChangesという名前の引数が用意されていて、
WdSaveOptions列挙に定義されている定数を指定することができます。
定数・wdDoNotSaveChangesを指定すれば保存しないで閉じるようになり、定数・wdSaveChangesを指定すれば自動的に保存を行おうとします。
ループを回さないで開いている文書をすべて閉じるサンプルマクロ
もう一つのマクロは、プログラミング経験のある方よりも、Wordの機能を熟知している方のほうが思いつく可能性の高いものです。
ループを回さないで一気にWordファイルを閉じるマクロです。
Documents.Close
End Sub
個々の文書を表すDocumentオブジェクトだけではなく、開いているすべての文書を表すDocumentsコレクションオブジェクトにも、Closeメソッドが用意されているのです。
このDocuments.Closeメソッドを実行すれば、すべての文書を閉じることができます。
Documents.Closeメソッドにも、先にご紹介したDocumentオブジェクトのCloseメソッドと同じく、引数・SaveChangesに、WdSaveOptions列挙に定義された定数を指定できます。
Wordに一括処理する処理するコマンドが存在する場合、VBA側からもループ処理しないで一気に処理できる可能性が高いことを、このサイト・インストラクターのネタ帳では何度か言及しています。このDocuments.Closeメソッドもその仲間です。(Wordには[すべて閉じる]というコマンドが昔から存在しています。)
最終更新日時:2022-08-05 03:24
Home » ワードマクロ・Word VBAの使い方 » Documentオブジェクト » 開いているファイル・文書をすべて閉じるWordマクロ