Home » ワードマクロ・Word VBAの使い方 » 段落・パラグラフ » Word VBAのParagraphFormatもオブジェクトを返すプロパティだが設定も可能

Word VBAのParagraphFormatもオブジェクトを返すプロパティだが設定も可能

動作検証バージョン:Windows版Word(バージョン1810 ビルド11029.20079)

Word VBAの、RangeオブジェクトやSelectionオブジェクトのFontプロパティは、オブジェクトを返すプロパティですが、設定もできることを記事にしました。

他にもそういったプロパティが存在します。
RangeオブジェクトやSelectionオブジェクトのParagraphFormatプロパティも、

単なるデータではなくオブジェクトを返すプロパティですけれど、設定することができます。

SelectionオブジェクトのParagraphFormatをオブジェクト変数から設定するサンプルマクロ

以下のSubプロシージャを実行すると、カーソルの置かれている段落の左右インデント幅が50ポイントに設定されます。

Sub ParagraphFormatプロパティをオブジェクト変数から設定する()
 Dim par_fmt As Word.ParagraphFormat
 Set par_fmt = New Word.ParagraphFormat

 par_fmt.LeftIndent = 50
 par_fmt.RightIndent = 50

 Selection.ParagraphFormat = par_fmt
End Sub

Sub sample()
 Selection.ParagraphFormat.LeftIndent = 50
 Selection.ParagraphFormat.RightIndent = 50
End Sub
のようなSubプロシージャを実行したときと同じ結果になります。

サンプルマクロで行っている処理の流れ

オブジェクト変数par_fmtに、
  Dim par_fmt As Word.ParagraphFormat
  Set par_fmt = New Word.ParagraphFormat
ParagraphFormatオブジェクトのインスタンスを生成して参照を格納しておきます。

この部分は、
  Dim par_fmt As ParagraphFormat
  Set par_fmt = New ParagraphFormat
でもOKです。

その後、オブジェクト変数のプロパティを設定して、
  par_fmt.LeftIndent = 50
  par_fmt.RightIndent = 50

SelectionオブジェクトのParagraphFormatプロパティに、オブジェクト変数par_fmtを設定しています。
  Selection.ParagraphFormat = par_fmt

SelectionオブジェクトのParagraphFormatプロパティを、オブジェクトブラウザーで調べると詳細ペインに「読み取り専用」の表示はありません。オブジェクトを返すプロパティであるにも関わらず、設定もできることを確認できます。

オブジェクト変数に参照を代入する場合はSetステートメントにする必要がありますけれど、Fontプロパティと同様、
  Selection.ParagraphFormat = par_fmt
の部分にSetキーワードは不要です。

最終更新日時:2021-05-20 10:02

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » 段落・パラグラフ » Word VBAのParagraphFormatもオブジェクトを返すプロパティだが設定も可能

「段落・パラグラフ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.