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

Word VBAで図形のテキストを取得する基本

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

「wordvba 図形 テキスト」
といった検索が、このサイト『インストラクターのネタ帳』で行われていました。

Word VBAで、Word文書上にある図形のテキスト(文字列)を操作するには、どのようなコードを書けばいいのかを調べていらしたのでしょう。

図形のテキストを取得するサンプルマクロ

新規のWord文書に、四角形などの図形を浮動オブジェクトとして挿入し、何らかの文字列を入力しておいてから以下のWordマクロを実行してください。

Sub WordVBAで図形のテキストを取得する()

 Dim shp As Shape
 Set shp = ActiveDocument.Shapes(1)
 
 Dim txt As String
 txt = shp.TextFrame.TextRange.Text

 MsgBox Left(txt, Len(txt) - 1)
 
End Sub

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

図形を表すShapeを取得

ActiveDocumentプロパティで取得したDocumentオブジェクトのShapesプロパティを使って、Word文書内の全図形を表すShapesコレクションを取得して、

Shapesコレクションの既定メンバーであるItemメソッドで取得したShapeオブジェクトを

変数shpに代入しています。

 Dim shp As Shape
 Set shp = ActiveDocument.Shapes(1)

図形内テキストの取得

その後、Shape.TextFrameプロパティで取得したTextFrameオブジェクトに用意されているTextRangeプロパティを使って、

WordのRangeオブジェクトを取得し、Range.Textプロパティで図形内のテキスト(文字列)を取得しています。

 Dim txt As String
 txt = shp.TextFrame.TextRange.Text

末尾の段落記号の削除

この状態は、末尾に段落記号が含まれているため、VBAのLeft関数とLen関数を使って最後の1文字を削除してメッセージボックスに表示しています。

 MsgBox Left(txt, Len(txt) - 1)
[スポンサードリンク]

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

「Shape・図形」の記事一覧

検索


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

.