「vba selection.pagesetup 開いているファイルすべて」
といった検索キーワードでアクセスがありました。
開いている全Word文書に対して、PageSetupオブジェクトを使った操作を行うにはどのようなコードを書けばいいのかを探していた方による検索でしょう。
オブジェクトブラウザーで「PageSetup」を完全一致検索してみると、
複数のオブジェクトにPageSetupプロパティが用意されていることがわかります。
全文書のPageSetupを操作するサンプル
「vba selection.pagesetup 開いているファイルすべて」
ということであれば、Documentsコレクションに対してFor Each~Nextループを回して、Documentオブジェクトを順番に取得し、その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プロシージャを参考にしてください。
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
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を取得する