字下げを全角スペースにするマクロ | 特許翻訳 A to Z

特許翻訳 A to Z

1992年5月から、フリーランスで特許翻訳者をしています。

3代目「特許翻訳の世界」 > マクロ&ユーテリティ
復刻シリーズです。

Word文書の字下げを全角スペース1つにするためのマクロです。
海外から送られてくる英文で、段落の先頭にタブではなく字下げ指定がなされているときに、自動的に全角スペースに置き換える使い方をしています。



この画像は「字下げ25.4mm」の例ですが、幅の値に関係なく自動的に解除して全角スペースに置き換えます。
カーソルのある行より下に対してだけ実行されますので、文書全体に対してマクロの処理をするときは、カーソルを文頭においてください。
 

 

  Dim nLastStart As Long
  If 0 <> Selection.ParagraphFormat.FirstLineIndent Then
    Selection.ParagraphFormat.CharacterUnitFirstLineIndent = 0
    Selection.ParagraphFormat.FirstLineIndent = 0
    Selection.TypeText " "
  End If
  If 0 <> Selection.ParagraphFormat.LeftIndent Then
    Selection.ParagraphFormat.CharacterUnitLeftIndent = 0
    Selection.ParagraphFormat.LeftIndent = 0
    Selection.TypeText " "
  End If

Application.ScreenUpdating = False
  Selection.Find.ClearFormatting
  With Selection.Find
    .Text = "^p"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = False
    .MatchFuzzy = False
  End With
  Do While Selection.Find.Execute
    nLastStart = Selection.Start
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    If nLastStart < Selection.Start Then
      If 0 <> Selection.ParagraphFormat.FirstLineIndent Then
        Selection.ParagraphFormat.CharacterUnitFirstLineIndent = 0
        Selection.ParagraphFormat.FirstLineIndent = 0
        Selection.TypeText " "
      End If
    Else
      Exit Do
    End If
  Loop
    Selection.Find.ClearFormatting
  With Selection.Find
    .Text = "^p"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = False
    .MatchFuzzy = False
  End With
  Do While Selection.Find.Execute
    nLastStart = Selection.Start
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    If nLastStart < Selection.Start Then
      If 0 <> Selection.ParagraphFormat.LeftIndent Then
        Selection.ParagraphFormat.CharacterUnitLeftIndent = 0
        Selection.ParagraphFormat.LeftIndent = 0
        Selection.TypeText " "
      End If
    Else
      Exit Do
    End If
  Loop
  Application.ScreenUpdating = True
 


字下げの解除自体は、全文を選択して一括で行うこともできますが、この方法だと段落の先頭がわかりにくくなってしまうため、やはりマクロで解除するほうが便利です。
 

※このマクロは、Word 2007までは動作確認ができています。2010以降で使用する場合は、個々に動作確認の上、必要に応じてコードの修正をしてください。

(→古いWordマクロを活用する方法
 


インデックスへ