Excel VBAユーザーのためのWord VBA 入門 「chapter 5. ParagraphFormatは段落書式を表す」
「3-4. Rangeの特徴的なプロパティ」で、RangeオブジェクトのParagraphFormatプロパティに少しだけ触れました。
Range.ParagraphFormatプロパティなどで取得できる、段落書式を表すParagraphFormatオブジェクトについて、chapter 5では学習しましょう。
この記事は『Excel VBAユーザーのためのWord VBA入門』の、chapter 5 です。「はじめに」から「chapter 4. FontはExcelより多機能」までをお読みいただいていることを想定して記述しております。
5-1. ParagraphFormatの特徴的なプロパティ
ParagraphFormatは、名前のとおり段落書式を表すオブジェクトです。
Wordの[段落]ダイアログ(図5-1a)などで設定できる項目に対応したプロパティやメソッドが、ParagraphFormatオブジェクトには用意されています。
Alignmentプロパティで配置を取得/設定
ParagraphFormatオブジェクトのAlignmentプロパティ(図5-1b)を使うと、右揃え・中央揃えといった段落の配置を取得/設定できます。
▲ オブジェクトブラウザーの詳細ペイン1行目に「Property Alignment As WdParagraphAlignment」と表示されているとおり、Alignmentプロパティの戻り値はWdParagraphAlignment列挙型(図5-1c)に定義されている定数です。 「読み取り専用」と表示されていないことから、設定も可能なプロパティであることがわかります。
▲ オブジェクトブラウザーのメンバーペインに表示されている定数名の後ろのほうに注目すると、[段落]ダイアログ-[インデントと行間隔]タブの[配置]欄に対応する定数が用意されていることを推測できます。
以下のコードを実行すると、アクティブ文書の全段落が右揃えになります。
With ActiveDocument.Range.ParagraphFormat
.Alignment = wdAlignParagraphRight
End With
「ActiveDocument.Range」でアクティブ文書の本文全体を表すRangeオブジェクトを取得できること(「3-2. Document.RangeメソッドでRangeを取得する」参照)、つづく「.ParagraphFormat」で、アクティブ文書本文の全段落の段落書式を表すParagraphFormatオブジェクトを取得していることを思い出してください(「3-4. Rangeの特徴的なプロパティ」参照)。
「ActiveDocument.Range.ParagraphFromat」で取得したParagraphFromatオブジェクトの、Alignmentpuropathiniプロパティに定数wdAlignParagraphRightを指定することで右揃えに設定しているのが上記のコードです。
LineSpacingRule・LineSpacingプロパティで行間を取得/設定
Wordでは、[段落]ダイアログ-[インデントと行間隔]タブの[行間]と[間隔](図5-1d)で、段落内の行高を設定できます。
ちなみに、Wordで[行間]と表示されているのは実際には行間ではなく、行と行の間のスペースに文字の高さを合計した、一般的には「行高」と呼ばれるものです。
この[段落]ダイアログの[行間]と[間隔]に対応したプロパティもあります。LineSpacingRuleプロパティとLineSpacingプロパティです。
次のコードを実行すると、アクティブ文書の全段落の行高が、固定値の24ポイントに設定されます。
With ActiveDocument.Range.ParagraphFormat
.LineSpacingRule = wdLineSpaceExactly
.LineSpacing = 24
End With
[段落]ダイアログの[行間]に対応するのがLineSpacingRuleプロパティ(図5-1e)です。
▲ オブジェクトブラウザーの詳細ペイン1行目に「Property LineSpacingRule As WdLineSpacing」と表示されているとおり、LineSpacingRuleプロパティの戻り値はWdLineSpacing列挙型(図5-1f)に定義されている定数です。
▲ オブジェクトブラウザーのメンバーペインに表示されている定数名の最後のほうに注目すると、[段落]ダイアログ-[インデントと行間隔]タブの[行間]欄(図5-1d)に対応する定数が用意されていることを推測できます。
ParagraphFormatオブジェクトのLineSpacingRuleプロパティに、定数wdLineSpaceExactlyなどを設定した場合には、行高を表すLineSpacingプロパティ(図5-1g)にポイント数を指定できます。
▲ オブジェクトブラウザーの詳細ペイン1行目に「Property LineSpacing As Single」と表示されていることから、LineSpacingプロパティの戻り値がSingle型のデータであることがわかります。 「読み取り専用」表示がないことから、設定も可能なプロパティであることもわかります。
StyleプロパティでStyleオブジェクトを取得
ParagraphFormatオブジェクトには、スタイルを表すStyleオブジェクトを取得するための、Styleプロパティ(図5-1h)もあります。
以下のコードを実行すると、アクティブ文書の1文字目のスタイル名がメッセージボックスに表示されます。
With ActiveDocument.Range(0, 1).ParagraphFormat
MsgBox .Style.NameLocal
End With
▲ オブジェクトブラウザーの詳細ペイン1行目に「Property Style As Variant」と表示されていることから、Styleプロパティの戻り値はVariant型と定義されていることがわかります。 但し、この後の「5-3. ParagraphFormatをローカルウィドウで確認しよう」で行うように、コードをステップ実行してローカルウィンドウを見れば、通常はStyleオブジェクト(図5-1i)を返すことがわかります。
▲ オブジェクトブラウザーのメンバーペインから、Styleオブジェクトには多数のプロパティ・メソッドが用意されていることがわかります。
また、そのアイコンからNameLocalプロパティ(図5-1j)が既定メンバーであることがわかります。
▲ オブジェクトブラウザーの詳細ペイン1行目に「Property NameLocal As String」と表示されていることから、NameLocalプロパティの戻り値がString型のデータであることがわかります。
5-2. ParagraphFormatの特徴的なメソッド
ParagraphFormatオブジェクトには、メソッドも用意されています。特徴的なものをいくつか見ておきましょう。
ここから先は
¥ 240
よろしければ、サポートをお願いします!!