Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAで行内図形の文字列・テキストを取得する

Word VBAで行内図形の文字列・テキストを取得する

動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2506(ビルド18925.20168クイック実行)

Wordで、文字列の折り返しを「行内」に設定した図形やテキストボックスの、

文字列・テキストをVBAで取得したいという要望があるようです。

[スポンサードリンク]

行内図形の文字列・テキストを取得するサンプルマクロ

以下のWordマクロを実行すると、文字列の折り返しを行内に設定した図形の文字列がイミディエイトウィンドウに出力されます。

Sub 行内図形の文字列を取得する()
 Dim shp As Shape
 For Each shp In ActiveDocument.Shapes

  If shp.WrapFormat.Type = wdWrapInline Then
   Debug.Print shp.TextFrame.TextRange.Text
  End If

 Next
End Sub

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

この処理で厄介なのは、図形の場合は文字列の折り返しが行内であってもInlineShapeオブジェクトではないことです。

そこで上記のWordマクロでは、Document.Shapesプロパティで取得できるShapesコレクションに対してFor Each~Nextループを回して、

 Dim shp As Shape
 For Each shp In ActiveDocument.Shapes

WrapFormat.Typeプロパティの値が、

定数wdWrapInlineだったときにのみ、文字列を出力しています。

  If shp.WrapFormat.Type = wdWrapInline Then
   Debug.Print shp.TextFrame.TextRange.Text

最終更新日時:2025-07-28 10:22

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAで行内図形の文字列・テキストを取得する

「Shape・図形」の記事一覧

検索


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

.