CharacterUnitFirstLineIndentプロパティ、おまえだったのか……(Word)

CharacterUnitFirstLineIndentプロパティ、おまえだったのか。いつもくりをくれたのは。

ついさきほど、

akashi-keirin.hatenablog.com

こんなことを書いたところだが、マルちゃん麺づくりばりにあっさり解決したので、報告。

CharacterUnitFirstLineIndentプロパティというものがある

テキトーにぐぐっていたら、

stabucky.com

こんなのを見つけた。

コメント欄の「3.」に曰く、

通りすがりの者です。
もう解決済みかと思いますが、たまたま私も同じ問題に遭遇し悩んでおりましたので。
私の場合は、

.CharacterUnitFirstLineIndent = 0
.FirstLineIndent = n

とすることで設定値が反映されました。
上記の処理順が逆の場合や、
CharacterUnitFirstLineIndent0以外の値が設定されている場合はこちらが優先され、FirstLineIndentは変更できないような挙動でした。
ご参考になれば幸いです。

なにーーーー! CharacterUnitFirstLineIndentだとーーー!

それもう、名前からしてモロに〝字数単位で指定している1行目のインデント〟のことじゃないっすかーーー!

コードの書き換え

で、前回のリスト1を次のように書き換える。

リスト1
Public Sub OffFirstLineIndent()
  With Selection.ParagraphFormat
    If .CharacterUnitFirstLineIndent <> 0 Then
      .CharacterUnitFirstLineIndent = 0
    End If
    .FirstLineIndent = 0
  End With
End Sub

もう、見てのとおり、CharacterUnitFirstLineIndentプロパティの値が「0以外の値」だったら「0」にしてから、FirstLineIndentプロパティの値を「0」にしてやるのだ!

うむ! 万全である!

実行してみる

f:id:akashi_keirin:20220102202950g:plain

ははは! 完璧ではないか!

おわりに

ichitnkさん、ありがとうございました!