Home » ワードマクロ・Word VBAの使い方 » ページ設定・PageSetup » VBAで全文書のPageSetupを取得する

動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2011 ビルド13426.20332 Microsoft Store)

「vba selection.pagesetup 開いているファイルすべて」
といった検索キーワードでアクセスがありました。

開いている全Word文書に対して、PageSetupオブジェクトを使った操作を行うにはどのようなコードを書けばいいのかを探していた方による検索でしょう。

オブジェクトブラウザーで「PageSetup」を完全一致検索してみると、

複数のオブジェクトにPageSetupプロパティが用意されていることがわかります。

[スポンサードリンク]

全文書のPageSetupを操作するサンプル

「vba selection.pagesetup 開いているファイルすべて」
ということであれば、Documentsコレクションに対してFor Each~Nextループを回して、Documentオブジェクトを順番に取得し、そのPageSetupオブジェクトを取得すればイイでしょう。

Sub 全文書のPageSetupを操作する()
 Dim doc As Document
 For Each doc In Documents
  With doc.PageSetup
   MsgBox .Orientation
  End With
 Next
End Sub

上記のSubプロシージャを実行すると、開いている全Word文書の、印刷の向きを表す、0(wdOrientPortrait・縦)または1(wdOrientLandscape・横)が、順番にメッセージボックスに表示されます。

全文書を表すDocumentsコレクションに対するFor Each~Next文の中で、
  For Each doc In Documents

Documentオブジェクトに用意されているPageSetupプロパティを使って、

Word文書のページ設定を表すPageSetupオブジェクトを取得しています。
   With doc.PageSetup

全文書全セクションのPageSetupを操作するサンプル

複数のセクションで構成されているWord文書が存在する場合は、以下のSubプロシージャを参考にしてください。

Sub 全文書全セクションのPageSetupを操作する()
 Dim doc As Document
 For Each doc In Documents

  Dim sec As Section
  For Each sec In doc.Sections
   With sec.PageSetup
    MsgBox .Orientation
   End With
  Next sec

 Next doc
End Sub

先ほどのSubプロシージャよりも、階層が1つ深くなっています。

全Documentsに対するFor Each~Nextループの中で、
  For Each doc In Documents

文書内の全セクションを表すSectionsコレクションに対するFor Each~Nextループを回して、
   For Each sec In doc.Sections

Sectionオブジェクトに用意されているPageSetupプロパティを使って、

セクションのページ設定を表すPageSetupオブジェクトを取得しています。
    With sec.PageSetup

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » ページ設定・PageSetup » VBAで全文書のPageSetupを取得する

「ページ設定・PageSetup」の記事一覧

検索


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

.