Excel VBA 図形(オートシェイプ)にテキスト・文字列の入力方法

図形作成/操作

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
タイトルとURLをコピーしました