【1行マクロ】文字位置を制御する+α | 特許翻訳 A to Z

特許翻訳 A to Z

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

1行マクロ実例101 > 文字の間隔を制御する
復刻シリーズのWordマクロです。
 

■コード
Selection.Font.Position = -2    2pt「下げる」場合
Selection.Font.Position = 3     3pt「上げる」場合

【説明】
[ホーム]タブの[フォント]グループで右下の「 」を押してフォントダイアログを表示し、「文字幅と間隔」タブを選んで[位置(P)]で文字の上下位置を指定する操作と同じ結果になります。
標準位置を基準にして上下の位置をポイント数で指定し、下げる場合はマイナス符号を付けます。


特許翻訳では、むしろこの逆つまり原文のデータに「上げる」「下げる」で位置指定された文字が入っていたときに、それを自動で通常の上付や下付に変換する処理のほうが、使用場面が多いと思います。

 

2pt「下げる」が指定された文字→通常の下付にする

  With ActiveDocument.Content.Find

    .ClearFormatting

    .Font.Position = -2

    With .Replacement

      .ClearFormatting

      .Font.Subscript = True

      .Font.Position = 0

    End With

    .Execute FindText:="", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll

  End With

 

2pt「上げる」が指定された文字→通常の上付にする

  With ActiveDocument.Content.Find

    .ClearFormatting

    .Font.Position = 2

    With .Replacement

      .ClearFormatting

      .Font.Superscript = True

      .Font.Position = 0

    End With

    .Execute FindText:="", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll

  End With

 

上のコード例では、「.Font.Position = -2」=フォント位置が2pt下がっているという意味です。
Findで条件に該当する文字を検索し、Replacementで「.Font.Subscript = True」=通常の下付に置換しています。

検索する文字列と置換後の文字列の検索窓は空欄(FindText:="", ReplaceWith:="")ですので、文字に関係なくフォントの書式が「上がる」から上付、「下がる」から下付に置換されます。
このコードなどは、「古いWordマクロを活用する方法」で書いたように、まさに人間の要求をコンピューターに理解できるように「翻訳」しています。

3ptの場合は「3」と「-3」という具合に、数字を変更して使えます。
 

 

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

(→1行マクロをWord 2010/2013で使う
 


インデックスへ