MS-WODのマクロで空の段落を取ろうとして、ネットで検索するとそれなりの答えが得られる。
Sub 空段取る改良前()
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "^13{2,}"
.Replacement.Text = "^p"
.Forward = Frd
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.MatchByte = False
.MatchFuzzy = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
しかしながら、これでは文書の最初行/最終行に空の段落がある場合、それを取り除くことができない。
で、改良してみた。
Sub 空段取る()
Dim NB As Long
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "^13{2,}"
.Replacement.Text = "^p"
.Forward = Frd
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.MatchByte = False
.MatchFuzzy = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
'ファイル最初行の空段落を取る
If (ActiveDocument.Paragraphs(1).Range.Text = vbCr) Then
ActiveDocument.Paragraphs(1).Range.Delete
End If
'ファイル最終行の空段落を取る
NB = ActiveDocument.Paragraphs.Count
If (ActiveDocument.Paragraphs(NB).Range.Text = vbCr) Then
ActiveDocument.Paragraphs(NB).Range.Delete
End If
End Sub