動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2405(ビルド17602.20000クイック実行)ベータチャネル
200ページほどの、複数セクションに分かれているWord文書を作成しています。
その文書では各セクションの最初に、段落スタイル「見出し1」を設定した段落があり、そのページが奇数ページなのか偶数ページなのかがを確認する必要がありました。
そのためのWordマクロを作りました。
見出し1スタイルのページ番号と偶奇判定結果を出力するサンプルマクロ
「見出し1」スタイルの設定されている段落のあるページ番号と、そのページ番号が偶数なのか奇数なのかを一覧として出力する以下のWordマクロです。
Sub 見出し1の存在するページ番号と偶奇判定結果を出力する()
Dim par As Paragraph
For Each par In ActiveDocument.Paragraphs
With par
If .Style.NameLocal = "見出し 1" Then
Dim nombre As Long
nombre = .Range.Information(wdActiveEndPageNumber)
Dim parity As String
parity = "奇"
If nombre Mod 2 = 0 Then parity = "偶"
Debug.Print _
parity; nombre; vbTab; _
.Range.Text;
End If
End With
Next
End Sub
Dim par As Paragraph
For Each par In ActiveDocument.Paragraphs
With par
If .Style.NameLocal = "見出し 1" Then
Dim nombre As Long
nombre = .Range.Information(wdActiveEndPageNumber)
Dim parity As String
parity = "奇"
If nombre Mod 2 = 0 Then parity = "偶"
Debug.Print _
parity; nombre; vbTab; _
.Range.Text;
End If
End With
Next
End Sub
実行すると、下図のような出力が行われます。
サンプルマクロで行っている処理
拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』の、[6-2. ParagraphsからParagraphを取得する]でお解説している、アクティブ文書の全段落に対するFor Each~Nextループで、
Dim par As Paragraph For Each par In ActiveDocument.Paragraphs
段落スタイル名が「見出し 1」だったときに、
With par If .Style.NameLocal = "見出し 1" Then
ページ番号を変数nombreに代入して、
Dim nombre As Long nombre = .Range.Information(wdActiveEndPageNumber)
ページ番号が奇数の場合に変数parityに文字列「奇」、偶数であれば「偶」を代入しておいて、
Dim parity As String parity = "奇" If nombre Mod 2 = 0 Then parity = "偶"
「奇」または「偶」の文字、ページ番号、段落文字列を出力しています。
Debug.Print _ parity; nombre; vbTab; _ .Range.Text;
最終更新日時:2024-04-22 20:16
[スポンサードリンク]
Home » ワードマクロ・Word VBAの使い方 » スタイル » 見出し1スタイルのページ番号と偶奇判定結果を出力するWordマクロ