動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2210 ビルド15726.20202 Microsoft Store)
「word header 1文字づつ取得」
という検索でアクセスがありました。
最終的に何をしたいのかは不明ですが、Word VBAでヘッダーの文字列を1文字ずつ取得するには、どのようなコードを書けばいいのか調べていらしたのでしょう。
ヘッダー文字列から1文字ずつ取得するサンプルマクロ
以下のWordマクロを実行すると、アクティブ文書の1つ目のセクションのプライマリーヘッダーの文字列が、1文字ずつメッセージボックスに表示されます。
Sub ヘッダー文字列から1文字ずつ取得する()
With ActiveDocument.Sections(1)
Dim rng As Range
For Each rng In .Headers(wdHeaderFooterPrimary).Range.Characters
MsgBox rng.Text
Next
End With
End Sub
With ActiveDocument.Sections(1)
Dim rng As Range
For Each rng In .Headers(wdHeaderFooterPrimary).Range.Characters
MsgBox rng.Text
Next
End With
End Sub
ヘッダー文字列から1文字ずつ取得するオブジェクトモデル
上記のWordマクロでは、以下のような階層を辿って、ヘッダー文字列を1文字ずつ取得しています。
Document ← ActiveDocument └ Section ← .Sections(1) └ HeaderFooter ← .Headers(wdHeaderFooterPrimary) └ Range ← .Range └ Characters ← .Characters └ Range ← For Each~Next
ヘッダーを表すオブジェクトを取得する過程は異なりますが、Charactersコレクションから文字を表すRangeオブジェクトを取得するFor Each~Nextループは、拙著『Excel VBAユーザーのためのWord VBA入門(1)』の、[3-6. Characters経由でRangeを取得する]で解説しているのと同じです。
最終更新日時:2022-12-09 14:47
[スポンサードリンク]
- Newer:Excelの「=TEXT(TODAY(), "mmdd")」とは
- Older:奇数行をExcel VBAで選択する
Home » ワードマクロ・Word VBAの使い方 » ヘッダー&フッター » Word VBAでヘッダー文字列から1文字ずつ取得する