【Word VBA】段落書式を設定するWordマクロ

2010年5月14日

水野麻子さんの昨日のブログ記事「左/中央/右/両端揃えをキー操作で

に段落書式の変換のショートカットが紹介されていました。
実は、ちょうど私も段落書式に関するマクロを勉強中だったので紹介します。

作成経緯

先日、文字書式のタグ化 に関してマクロを紹介したところ、比較的好評でした。
そのために、調子に乗って、段落書式もタグ化しようと思って、現在格闘中。
少し想定外のバグがあるので、まだ公開できませんが、いずれ

完成させて公開したく思います。
今作っているプログラムで活躍中のコードです。

1行マクロ

 Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
意味は、
 選択箇所の、段落書式で、配置は = 右揃え
です。
一覧で示すと、以下のようになっています。ついでにショートカットも対応させました。

左揃え wdAlignParagraphLeft     [Ctrl][L]

右揃え wdAlignParagraphRight    [Ctrl][R]

中央揃え wdAlignParagraphCenter   [Ctrl][E]

両端揃え wdAlignParagraphJustify   [Ctrl][J]

均等割り付け wdAlignParagraphDistribute  [Ctrl]+[Shft] + [J]

Rangeオブジェクトで書く

上記のようにする場合、プログラムで使うときに常に、カーソルを移動して選択範囲を設定する必要があります。
Selectionオブジェクトは、カーソル位置と連動するからです。しかし、Rangeオブジェクトを使うと、少し違った考え方で処理をすることができます。
たとえば、以下のようにかけます。この場合、カーソル位置に関係なく処理の対象を決定することができます。 ActiveDocument.Paragraphs(2).Range.ParagraphFormat.Alignment =

 wdAlignParagraphCenter

意味は以下のようになります。

現在の文書で、第2段落の範囲の、段落書式で、配置は = 中央揃え

Rangeオブジェクトって案外便利ですよ。

-コード
-,