VBAでワークシート上の図形(オートシェイプ)にテキストを入力する方法をご説明します。
図形にテキストを入力する場合に、新規に図形を作成すると同時にテキストを入力する場合と、すでに作成済みの図形を取得してテキストを入力する場合とがあるかと思います。
作成済みの図形を取得して、テキストを入力するサンプルコードも併せて記載します。
その他の図形の操作については、下記記事をご覧ください。
- 図形(オートシェイプ)一覧と作成/追加する方法
- 図形(オートシェイプ)の位置やサイズを変更する
- 図形(オートシェイプ)を取得する方法
- 図形(オートシェイプ)を反転、回転させる方法
- 図形(オートシェイプ)の塗りつぶしを変更する方法
- 図形(オートシェイプ)の枠線の色や種類と太さを変更する方法
- 図形(オートシェイプ)にマクロを登録する方法
1.図形にテキストを入力する方法
図形にテキストを入力するには「Charactersオブジェクト」の「Textプロパティ」でテキストを入力したり、入力されている文字列を取得することができます。
「Charactersオブジェクト」は「Shaepオブジェクト」の「TextFrameプロパティ」で、「TextFrameオブジェクト」を取得した、「Charactersメソッド」で取得できます。
次のように記述すると覚えてください。
また、テキストのFontの設定は「セルのフォントサイズ、種類、表示位置を指定する」をご覧ください。
ActiveSheet.Shapes(1).TextFrame.Characters.Text = "入力したい文字列"
2.図形にテキストを入力するサンプルコード
図形作成と同時にテキストを入力する
まずは図形を作成時と同時にテキストを入力する方法です。
図形は「Shapes.AddShape(タイプ, Left, Top, Width, Height)」で作成します。
Sub Sample1()
'Type,Left,Top,Width,Heightを指定
With ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50, 50, 50, 50)
With .TextFrame.Characters 'テキスト
.Text = "四角形" '文字列
.Font.Size = 10 '文字のサイズ
.Font.Bold = True
End With
End With
End Sub
作成済みの図形を取得してテキストを入力する
次は作成済みの図形を取得してテキストを入力する方法です。
次のように3つの図形がすでにあるワークシートの図形を操作します。
個別に指定して取得する
Sub Sample2()
With ActiveSheet
With .Shapes(1).TextFrame.Characters 'テキスト
.Text = "四角形1" '文字列
.Font.Size = 10 '文字のサイズ
.Font.Bold = True
End With
With .Shapes(2).TextFrame.Characters 'テキスト
.Text = "四角形2" '文字列
.Font.Size = 10 '文字のサイズ
.Font.Bold = True
End With
With .Shapes(3).TextFrame.Characters 'テキスト
.Text = "四角形3" '文字列
.Font.Size = 10 '文字のサイズ
.Font.Bold = True
End With
End With
End Sub
ループですべて取得する
Sub Sample3()
Dim i As Long
With ActiveSheet
For i = 1 To .Shapes.Count
With .Shapes(i).TextFrame.Characters 'テキスト
.Text = "四角形" & i '文字列
.Font.Size = 10 '文字のサイズ
.Font.Bold = True
End With
Next i
End With
End Sub