最近、スタイルを適用した200ページほどのWord文書を編集しています。
その編集中に、(置換を失敗したのか)見出しの先頭に半角スペースが存在する状態になっていました。
見出しスタイルを適用した段落が大量にあったため、これを削除するマクロを作成しました。
見出しスタイルの先頭に存在するスペースを削除するWordマクロ
以下のWordマクロを実行すると、見出しスタイルの適用されている段落の先頭の半角スペースが削除されます。
Dim par As Paragraph
For Each par In ActiveDocument.Paragraphs
If Left(par.Style.NameLocal, 3) = "見出し" Then
If Left(par.Range.Text, 1) = " " Then
par.Range.Characters.First.Delete
'## 確認時には↑をコメントアウトして↓をアンコメントする
' par.Range.Characters.First.Select: Stop
End If
Next
End Sub
途中にコメントを入れているとおり、
par.Range.Characters.First.Delete '## 確認時には↑をコメントアウトして↓をアンコメントする ' par.Range.Characters.First.Select: Stop
の部分を、以下の形にして実行した場合には、、
' par.Range.Characters.First.Delete '## 確認時には↑をコメントアウトして↓をアンコメントする par.Range.Characters.First.Select: Stop
削除ではなく、見出しスタイルの先頭に存在する半角スペースを確認できます。
見出しスタイルの先頭に存在するスペースを削除するWordマクロで行っている処理
拙著『Excel VBAユーザーのためのWord VBA入門(1)』の[6-2. ParagraphsからParagraphを取得する]で解説している、For Each~Nextループで全段落に対して処理を行っています。
Dim par As Paragraph For Each par In ActiveDocument.Paragraphs
段落のスタイル名の先頭3文字が「見出し」だったときに、
If Left(par.Style.NameLocal, 3) = "見出し" Then
先頭の1文字目をVBAのLeft関数を使って取得して半角スペースかを調べ、
If Left(par.Range.Text, 1) = " " Then
半角スペースであれば先頭の1文字を削除しています。
par.Range.Characters.First.Delete
Home » ワードマクロ・Word VBAの使い方 » スタイル » 見出しスタイルの先頭にあるスペースを削除するWordマクロ