動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2506(ビルド18925.20168クイック実行)
Wordで、文字列の折り返しを「行内」に設定した図形やテキストボックスの、
文字列・テキストをVBAで取得したいという要望があるようです。
[スポンサードリンク]
行内図形の文字列・テキストを取得するサンプルマクロ
以下のWordマクロを実行すると、文字列の折り返しを行内に設定した図形の文字列がイミディエイトウィンドウに出力されます。
Sub 行内図形の文字列を取得する()
Dim shp As Shape
For Each shp In ActiveDocument.Shapes
End 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
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
[スポンサードリンク]
- Newer:VBAでクリックしたセルの値を取得する
- Older:Excel VBAで線の矢印を消すには
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAで行内図形の文字列・テキストを取得する