動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2410(ビルド18028.20004クイック実行)ベータチャネル
「word vba 空白行 削除」
といった検索が、このサイト『インストラクターのネタ帳』で行われていました。
「空白行 削除」と表現されていますが、本当は「空白の行」ではなく、段落記号以外に文字列の存在しない空白(空っぽ)の段落を削除するWord VBAのコードを探していらしたのではないかと想像しています。
空白(空っぽ)の段落を削除するサンプルマクロ
以下のWordマクロを実行すると、アクティブ文書の空の段落が削除されます。
Sub 空の段落を削除する()
With ActiveDocument
Dim i As Long
For i = .Paragraphs.Count To 1 Step -1
With .Paragraphs(i).Range
If .Characters.Count = 1 Then .Delete
End With
Next
End With
End Sub
With ActiveDocument
Dim i As Long
For i = .Paragraphs.Count To 1 Step -1
With .Paragraphs(i).Range
If .Characters.Count = 1 Then .Delete
End With
Next
End With
End Sub
サンプルマクロで行っている処理
アクティブ文書の全段落の、最後から最初に向けてFor~Nextループを開始します。
With ActiveDocument Dim i As Long For i = .Paragraphs.Count To 1 Step -1 With .Paragraphs(i).Range
拙著『Excel VBAユーザーのためのWord VBA入門(1)』の「1-3. Excel VBAユーザーがWord VBAで注意すべき点」でも触れているとおり、Word VBAでは削除を行う場合にはFor Each~Nextループでは上手く処理できないため、「Step -1」でFor~Nextループを回しています。
Paragraph.Range.Characters.Countで段落の文字数を調べ、
1文字の場合(段落記号しかない場合)に、Range.Deleteメソッドで削除を行っています。
With .Paragraphs(i).Range If .Characters.Count = 1 Then .Delete
最終更新日時:2024-09-12 10:57
[スポンサードリンク]
- Newer:Excel VBAのPhoneticsとPhoneticのメンバーを比較する一覧
- Older:DAOのOpenRecordsetメソッドの引数Optionに指定できるRecordsetOptionEnumの定数一覧
Home » ワードマクロ・Word VBAの使い方 » 段落・パラグラフ » Word VBAで空白(空っぽ)の段落を削除する