特にページ数の多い文書を作成・編集しているときに便利な[ブックマーク]という機能が、Wordには用意されています。
[挿入]タブ-[リンク]グループ-[ブックマーク]ボタンから、ブックマークを設定しておくと、
[検索と置換]ダイアログ-[ジャンプ]タブなどから、
簡単に文書内を移動することができるようになります。
このブックマーク機能について、
「word マクロ ブックマークのあるセクションを調べる」
という検索でアクセスがあることに気が付きました。
ブックマークの設定されている場所を調べるWordマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。
ブックマークの場所を取得するサンプルマクロ
「word マクロ ブックマークのあるセクションを調べる」
という検索キーワードでしたが、実務上はページ番号もわかるほうが良さそうに感じますので、アクティブ文書のブックマーク名・セクション番号・ページ番号をイミディエイトウィンドウに出力するマクロを作ってみました。
Dim bkm As Bookmark
For Each bkm In ActiveDocument.Bookmarks
With bkm
Debug.Print _
.Name & vbTab & _
.Range.Information(wdActiveEndSectionNumber) & vbTab & _
.Range.Information(wdActiveEndPageNumber)
Next
End Sub
サンプルマクロの解説
上記のマクロで利用しているオブジェクトモデルの階層関係は下図のとおりです。
アクティブな文書に含まれる全ブックマークを表すBookmarksコレクションオブジェクトにFor Each~Nextループを回して、
For Each bkm In ActiveDocument.Bookmarks
各ブックマークの、名前等を出力しています。
With bkm
Debug.Print _
.Name & vbTab & _
セクション番号・ページ番号は、Bookmarkオブジェクトからは直接取得できないので、RangeオブジェクトのInformationプロパティを使って、
.Range.Information(wdActiveEndSectionNumber) & vbTab & _
.Range.Information(wdActiveEndPageNumber)
取得しています。
最終更新日時:2022-01-05 16:06
Home » ワードマクロ・Word VBAの使い方 » ブックマーク » ブックマークの位置を調べるWordマクロ