Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAでShape内のParagraphを取得する

Word VBAでShape内のParagraphを取得する

動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2012 ビルド13530.20376 Microsoft Store)

「vba word shape paragraph」
という検索キーワードで、アクセスがありました。

図形内の段落を表すParagraphオブジェクトを取得する、Word VBAのコードについて、調べていた方による検索でしょうか。

[スポンサードリンク]

Shape内のParagraphを取得するサンプルマクロ

アクティブなWord文書に図形を1つ挿入し、図形内に複数の段落が存在する状態にしておいてから、以下のSubプロシージャを実行してみてください。

Sub Shape内のParagraphを順番に取得する()
 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オブジェクトである点が、ポイントです。

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAでShape内のParagraphを取得する

「Shape・図形」の記事一覧

検索


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

.