「vba word shape paragraph」
という検索キーワードで、アクセスがありました。
図形内の段落を表すParagraphオブジェクトを取得する、Word VBAのコードについて、調べていた方による検索でしょうか。
Shape内のParagraphを取得するサンプルマクロ
アクティブなWord文書に図形を1つ挿入し、図形内に複数の段落が存在する状態にしておいてから、以下のSubプロシージャを実行してみてください。
With ActiveDocument.Shapes(1)
Dim par As Paragraph
For Each par In .TextFrame.TextRange.Paragraphs
par.Range.Select
MsgBox par.Range.Text
Next
End With
End Sub
図形内の段落が順番に選択され、各段落の文字列が順番にメッセージボックスに表示されます。
Shape内Paragraphまでのオブジェクトモデル
Word VBAの場合、図形内の全段落を表すParagraphsコレクションまでは、以下のような階層構造になっています。
Shapeオブジェクト
└ TextFrameオブジェクト
└ Rangeオブジェクト
└ Paragraphsコレクション
このTextFrame以下のオブジェクトを取得するために、上記のSubプロシージャでは以下のようなプロパティをそれぞれ利用しています。
Shape
└ TextFrame ← Shape.TextFrameプロパティ
└ Range ← TextFrame.TextRangeプロパティ
└ Paragraphs ← Range.Paragraphsプロパティ
TextFrameオブジェクトに用意されているTextRangeプロパティで取得できるのが、Rangeオブジェクトである点に注目です。
ParagraphとRangeの関係について理解できている方にとっては、TextFrameオブジェクトのTextRangeプロパティで取得できるのがRangeオブジェクトである点が、ポイントです。
- Newer:Word VBAのSelection.Endとは
- Older:Excel VBAでWord文書の段落を削除する
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAでShape内のParagraphを取得する