Home » ワードマクロ・Word VBAの使い方 » Documentオブジェクト » 全ファイルを上書き保存するWordマクロ

全ファイルを上書き保存するWordマクロ

対象:Word2007, Word2010, Word2013

全ファイルを上書き保存するWordマクロ

「ワード マクロ すべてのファイル保存」
「ワード マクロ すべてのファイル一括保存」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

すべてのファイルを保存するWord マクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。

この手のマクロは、どこに保存するか、名前をどうするかを気にすると、考えるべきことが増えます。

まずは、すべてのファイルを、上書き保存するマクロをご紹介します。

ループ処理で全ファイルを上書き保存するサンプルマクロ

マクロ・プログラミングの経験がある方が思いつくのは以下のようなマクロでしょう。

Sub 開いている文書をすべて上書き保存()

 Dim doc As Document

 On Error Resume Next

 For Each doc In Documents
  doc.Save
 Next doc

End Sub

開いているすべての文書ファイルに対してループを回して、
 For Each doc In Documents

上書き保存をしています。
  doc.Save

一度も保存されていない新規文書があったときに、エラーになってしまうのを避けるために、
 On Error Resume Next
としています。

ループ処理を使わずに全ファイルを上書き保存するサンプルマクロ

念のために、WordのVBE(Visual Basic Editor)でオブジェクトブラウザーを表示して「Save」を検索してみると、DocmentsコレクションオブジェクトにもSaveというメソッドが存在していることに気づきました。

全ファイルを上書き保存するWordマクロ

以下のようなマクロでも、開いているファイルを上書き保存できるようです。

Sub 開いている文書をすべて上書き保存_ループ処理なし()

 Documents.Save NoPrompt:=True

End Sub

このマクロの場合、一度も保存されていない新規文書は無視され、一度でも保存されているファイルが上書き保存されます。

Document.Saveメソッドのヘルプの間違い

この記事を書くために、上記の
DocumentオブジェクトのSaveメソッドと
DocumentsコレクションオブジェクトのSaveメソッドの
ヘルプを読んでいたら、
DocumentオブジェクトのSaveメソッドのヘルプに、間違いがあることに気づきました。

Document.SaveメソッドのヘルプではNoPromptとOriginalFormatといういずれも省略可能な引数を指定できることになっています。

しかし、オブジェクトブラウザーでDocumentオブジェクトのSaveメソッドを確認すると、下図のように引数は取らないことになっています。

全ファイルを上書き保存するWordマクロ

オブジェクトブラウザーで、DocumentsコレクションオブジェクトのSaveメソッドのほうを確認すると、こちらは下図のように、NoPromptとOriginalFormatといういずれも省略可能な引数を指定できるようになっています。

全ファイルを上書き保存するWordマクロ

DocumentオブジェクトのSaveメソッドのヘルプは、DocumentsコレクションオブジェクトのSaveメソッドのヘルプをコピーして、修正を入れ忘れたのではないかと想像しています。

最終更新日時:2022-08-05 03:28

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Documentオブジェクト » 全ファイルを上書き保存するWordマクロ

「Documentオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.