「ms word vba sectionのあるページ番号」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
「sectionのあるページ番号」と表現されていますが、セクション区切りの存在するページ番号を取得する、VBA(Visual Basic for Applications)のコードを探している方による検索でしょう。
セクション区切りを取得するサンプルマクロ
以下のようなマクロで、アクティブな文書の、セクション区切りの存在するページ番号を、イミディエイトウィンドウに出力することができます。
With ActiveDocument.Sections
Dim i As Long
For i = 1 To .Count - 1
Debug.Print _
.Item(i).Range.Information(wdActiveEndPageNumber)
Next
End With
End Sub
サンプルマクロの解説
アクティブ文書の、全セクション数から「- 1」した回数だけループを回します。
With ActiveDocument.Sections
For i = 1 To .Count - 1
なぜ「- 1」としているかというと、セクション区切りのあるページを取得するのに、Informationプロパティの引数に定数・wdActiveEndPageNumberを指定する関係です。
InformationプロパティにwdActiveEndPageNumberを指定すると、指定範囲の終了位置のページ番号が取得できます。
セクションの最後のページ番号が、セクション区切りの存在しているページ番号ということができるわけです。
ただし、最後のセクションについてはセクション区切りが存在していなくても最終ページが取得されてしまいます。それを避けるためにセクションの個数回ループを回すのではなく、セクション数から「- 1」した回数だけループを回しています。
ループの中で、
Debug.Print _
.Item(i).Range.Information(wdActiveEndPageNumber)
と、各Sectionオブジェクトを、SectionsコレクションオブジェクトのItemメソッドを使って取得し、そのRangeプロパティでRangeオブジェクトを取得し、そのInformationプロパティを使って、セクションの最後のページ番号を取得して、Debug.Printしています。
最終更新日時:2022-09-22 15:42
- Newer:マクロダイアログからマクロを削除されないように
- Older:表に斜め罫線を引くPowerPointマクロ
Home » ワードマクロ・Word VBAの使い方 » セクション » VBAでセクション区切りのあるページ番号を取得する