【コード】英文チェック用 シングルスペースに変換する

先日のセミナー にて、ダブルスペースをシングルスペースに変換するマクロの作成をご依頼いただきました。

こういうニーズってありますね。

このマクロでできること

ピリオド、?、!の後に2つ以上スペースがあり、その後、半角英数字が記載されていた場合、このスペースを1つにします。

マクロの解説

ワイルドカードを用いた置換を実行しています。

ワイルドカードでは、半角の?と!は役割を持っていますので、?と!そのものを検索するために、\?、\!としました。

マクロ


Sub シングルスペース化()

 Dim myRange As Range
 Set myRange = ActiveDocument.Range(0, 0)

 With myRange.Find
  .Text = ".[ ]{2,}([a-zA-Z0-9])"
  .Replacement.Text = ". \1"
  .Replacement.Highlight = True
  .Forward = True
  .Format = True
  .MatchWildcards = True
  .Execute Replace:=wdReplaceAll
 End With

 With myRange.Find
  .Text = "\?[ ]{2,}([a-zA-Z0-9])"
  .Replacement.Text = "? \1"
  .Replacement.Highlight = True
  .Forward = True
  .Format = True
  .MatchWildcards = True
  .Execute Replace:=wdReplaceAll
 End With

 With myRange.Find
  .Text = "\![ ]{2,}([a-zA-Z0-9])"
  .Replacement.Text = "! \1"
  .Replacement.Highlight = True
  .Forward = True
  .Format = True
  .MatchWildcards = True
  .Execute Replace:=wdReplaceAll
 End With

 Set myRange = Nothing

End Sub

トップへ戻る