サンプルコードでできること
インデントの単位○字をmmかptに変更します。変更される単位はオプションの設定によります。
次のような単位が不揃いの時に使用します。
Sub インデントの単位_mmやptに変換() Dim para As Paragraph For Each para In Selection.Paragraphs With para.Range.ParagraphFormat .CharacterUnitFirstLineIndent = 0 .CharacterUnitLeftIndent = 0 End With Next para End Sub
コードの説明
With para.Range.ParagraphFormat .CharacterUnitFirstLineIndent = 0 .CharacterUnitLeftIndent = 0 End With
CharacterUnitFirstLineIndentは字下げ(ぶら下げ)インデント、CharacterUnitLeftIndentは左インデントを「○字」で指定するプロパティです。これを「0」にするだけで、mm(pt)表示に変更されます。
mm(pt)に換算して、LeftIndentやFirstLineIndentの値を格納する必要があると思い込んでいました。
試しに .CharacterUnitLeftIndent で左インデント3字を指定、次に .LeftIndentで5mm指定しました。
With Selection.ParagraphFormat .CharacterUnitLeftIndent = 3 '左インデント3字指定 .LeftIndent = 5 '左インデント5mm指定 End With
処理の結果、CharacterUnitLeftIndent の3字指定が優先されました。
- CharacterUnitLeftIndentや CharacterUnitFirstLineIndentに0以外の数値が設定。⇒LeftIndent やFirstLineIndentに値を設定しても、インデントに反映されない。
- CharacterUnitLeftIndentや CharacterUnitFirstLineIndentが0。⇒LeftIndent やFirstLineIndentの値がインデントに反映される。
- ○字単位のインデントが指定された段落の値を変更するとき、 CharacterUnitLeftIndentやCharacterUnitFirstLineIndentで値を指定するか、値を0にしてmm(pt)単位に変更後、LeftIndent 、FirstLineIndentで指定する。