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