【Word VBA】選択範囲内の特許段落番号を削除するWordマクロ

2016年8月29日

先日の記事「【Word】選択範囲内の特許段落番号を削除する」をWordマクロにしてみました。

このマクロでできること

選択範囲内の英文明細書用の段落番号を削除します。

(実行前)

段落番号

(実行後)

段落番号

マクロの解説

このマクロでは、段落番号の直前に改行記号がある場合に、段落番号と改行記号をまとめて削除しています。

そのため、選択範囲の先頭が段落番号の場合に、その段落番号を削除できません。

そこで、選択範囲の先頭の1つ前の文字列が改行記号の場合には、その直前の改行記号も置換対象範囲に含めるようにしています。(8行目~10行目)

マクロ


Sub 選択範囲内の段落番号を削除する()

 Dim myRange As Range
 
 Set myRange = Selection.Range
  
 '選択範囲の1つ前の改行記号を含む
 If myRange.Characters.First.Previous = vbCr Then
  myRange.Start = myRange.Start - 1
 End If
 
 '置換を実行
 With myRange.Find
  .Text = "^13\[[0-9]{4}\]^13"
  .Replacement.Text = "^p"
  .Forward = True
  .Wrap = wdFindStop
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchFuzzy = False
  .MatchWildcards = True
  .Execute Replace:=wdReplaceAll
  DoEvents
 End With
 
 Set myRange = Nothing
 
End Sub

-コード
-, ,