Home » ワードマクロ・Word VBAの使い方 » スタイル » 見出しスタイルの先頭にあるスペースを削除するWordマクロ

見出しスタイルの先頭にあるスペースを削除するWordマクロ

動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2404(ビルド17531.20000クイック実行)ベータチャネル

最近、スタイルを適用した200ページほどのWord文書を編集しています。
その編集中に、(置換を失敗したのか)見出しの先頭に半角スペースが存在する状態になっていました。

見出しスタイルを適用した段落が大量にあったため、これを削除するマクロを作成しました。

見出しスタイルの先頭に存在するスペースを削除するWordマクロ

以下のWordマクロを実行すると、見出しスタイルの適用されている段落の先頭の半角スペースが削除されます。

Sub 見出しの先頭にある半角スペースを削除する()
 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

  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マクロ

Copyright © インストラクターのネタ帳 All Rights Reserved.

.