字下げインデントを解除できない?(Word)
字下げインデントを解除できない?
実に不可思議な現象に出くわしたのでメモ。
なお、未解決である。
字下げインデントを解除する方法
段落の字下げインデントを司っているのは、ParagraphFormat
オブジェクトのFirstLineIndent
プロパティ。
理屈の上では、コイツの値を0
にしてやれば、字下げインデントなしの状態にできるはずである。
そこで、カーソルのある段落の字下げインデントを解除するためのコードは次のようになる。
リスト1
Public Sub OffFirstLineIndent() Selection.ParagraphFormat.FirstLineIndent = 0 End Sub
これで万全のはずである。
一点の曇りもない。
いざ、実行!
満を持して、実際のドキュメントで試してみる。
いかがであろうか。
1段落目(「ビデオを使うと、」で始まる段落)では無反応なのに、2段落目(「Word に用意されている」で始まる段落)では、意図どおり字下げが解除されている。
おい、誰やねん。
プログラムは書いたとおりに動く!
とかほざいたやつは。
1段落目と2段落目の違い
実は、1段落目と2段落目は、字下げインデントの指定の仕方がちょっとだけ違うのである。
画像でお見せしよう。
おわかりだろうか。
1段落目が、字下げインデントの幅を「1 字
」と文字数単位で指定しているのに対し、2段落目では「3.7 mm
」とミリ単位で指定しているのである。(「3.7 mm
」は、10.5ポイントの1字分の近似値。)
結論
どうも、
字下げインデントの幅が〝字数単位〟で指定されているとき(まあ、日本語環境なら普通そうすると思いますが。)には、VBAで字下げ幅等(ぶら下げインデントにするときは、
FirstLineIndent
の値をマイナスにする。)を設定することができないっぽい。
おわりに
これは、実に困ったことである。