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 As Word.ParagraphFormat
 Set par = New Word.ParagraphFormat

 par.LeftIndent = 50
 par.RightIndent = 50

 Selection.ParagraphFormat = par
End Sub

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

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

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

この部分は、
  Dim par As ParagraphFormat
  Set par = New ParagraphFormat
でもOKですが、私はライブラリ名まで明示するほうが好みです。

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

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

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

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

最終更新日時:2018-12-10 11:31

[スポンサードリンク]

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

TrackBack:0

TrackBack URL

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

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

検索


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

.