Word VBA/マクロ 備忘録

作業効率化のため作成したマクロをバックアップ代わりにアップしていきます。

【Word VBA/マクロ】字下げインデントの指定/ぶら下げインデントの指定

インデント設定は、単位によってコード記述に違いがあります。くり返しコードを修正しても、思いどおりに動作せず混乱しました。ようやく理解しても、すぐに忘れるため、設定の基本を残しておこうと思います。

サンプルコードでできること

○字単位、mm単位でインデントを指定します。

コードの説明

  • mm単位でインデントを指定するとき、CharacterUnitLeftIndent とCharacterUnitFirstLineIndent を0に設定。その後LeftIndent とFirstLineIndent の数値を指定。
  • 字下げインデントを設定するとき、左インデントと字下げインデントで指定する数値は、段落設定画面に入れる数値を同じです。

○字単位で指定する場合、CharacterUnitLeftIndent は「2」、CharacterUnitFirstLineIndent は1。次の図と同じ数値です。

mmで指定する場合、LeftIndentはMillimetersToPoints(10)、FirstLineIndent はMillimetersToPoints(3.7)。次の図と同じ数値です。

  • ぶら下げインデントの設定の数値は、○字とmm単位で異なります。○字単位指定の場合、左インデントはCharacterUnitLeftIndent プロパティに次の図と同じ数値を指定。ぶら下げインデントは、設定したい数値にマイナスを付けて、CharacterUnitFirstLineIndent プロパティに指定します。「3字」に設定した場合、「-3」です。


  • mm単位で設定する場合、画面と違う数値を入れるため分かりづらいです。LeftIndent に入れるのは、左インデントとぶら下げインデントを足した値です。左インデント10mm、ぶら下げ5mmに指定するとき、2つの値を足して15をLeftIndent に格納します。FirstLineIndent に入れるのは、○字単位のときと同じで、設定したい値にマイナスを付けた数字です。5mmインデントの時は、MillimetersToPoints(-5)を格納します。


Sub ○字単位で字下げインデント設定()
    With Selection.ParagraphFormat
        .CharacterUnitLeftIndent = 2
        .CharacterUnitFirstLineIndent = 1
    End With
End Sub

処理した結果の画面


Sub mm単位で字下げインデント設定()
    With Selection.ParagraphFormat
        .CharacterUnitLeftIndent = 0
        .CharacterUnitFirstLineIndent = 0
        .LeftIndent = MillimetersToPoints(10)
        .FirstLineIndent = MillimetersToPoints(3.7)
    End With
End Sub

処理した結果の画面


Sub ○字単位でぶら下げインデント設定()
    With Selection.ParagraphFormat
        .CharacterUnitLeftIndent = 1
        .CharacterUnitFirstLineIndent = -3
    End With
End Sub

処理した結果の画面


Sub mm単位でぶら下げインデント設定()
    With Selection.ParagraphFormat
        .CharacterUnitLeftIndent = 0
        .CharacterUnitFirstLineIndent = 0
        .LeftIndent = MillimetersToPoints(15)
        .FirstLineIndent = MillimetersToPoints(-5)
    End With
End Sub

処理した結果の画面