
TextFrameオブジェクトのCharactersオブジェクトを使うと、Excel VBA(Visual Basic for Applications)で図形に文字列を入力できることを記事にしました。
他にもShapeに文字列を設定するオブジェクト式がありますので、ご紹介しておきます。
TextRange2オブジェクトを使ってShapeに文字列を設定するサンプルマクロ
TextRange2オブジェクトを利用しても、Shapeに文字列を設定することができます。
ActiveSheet.Shapes(1).TextFrame2.TextRange.Text = "サンプル文字列"
End Sub
上記のマクロを実行すると、アクティブなシートの1個目のShapeに「サンプル文字列」という文字列が入力されます。
サンプルマクロの解説
ShapeオブジェクトのTextFrame2プロパティで、TextFrame2オブジェクトを取得して、

TextFrame2オブジェクトのTextRangeプロパティで、TextRange2オブジェクトを取得して、

TextRange2オブジェクトのTextプロパティに文字列を設定しています。

TextFrame2.TextRangeプロパティで取得できるのが、TextRange2オブジェクトであるところが、一番のポイントです。
プロパティ名(TextFrame2.TextRange)と、そのプロパティで取得できるオブジェクト名(TextRange2)が、微妙に異なっているのが厄介なところです。
厄介なのですが、TextFrame2オブジェクトの子オブジェクトであるTextRange2のほうが、TextFrameオブジェクトの子オブジェクトであるCharactersよりも、便利なケースが多々あります。
VBAから図形の文字列を操作する自由度を上げたいという方には、オブジェクトブラウザーを何度も調べながら、階層関係の図を自分で手書きしたりして、階層関係を頭に叩き込むことをおすすめしておきます。
最終更新日時:2022-08-04 15:40
Home » エクセルマクロ・Excel VBAの使い方 » 図形内文字列 » TextRange2オブジェクトでShapeに文字列を-TextRange2.Text

『インストラクターのネタ帳』では、2003年10月からMicrosoft Officeの使い方などを紹介し続けています。










