酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Excel2003のExcel VBAでオートシェイプ内にて表示されている文字列を設定する

オートシェイプ内に表示されている文字列(テキスト)に対して、任意の文字列を設定し表示します。

''' <summary>
'''  オートシェイプに文字列を設定する
''' </summary>
''' <param name="sheetName">シート名</param>
''' <param name="shapeName">シェイプ名</param>
''' <param name="text">表示する文字列</param>
''' <returns>
'''  無し
''' </returns>
Public Sub SetShapeText(sheetName As String, shapeName As String, text As String)

    ' ワークシートのオブジェクトを取得
    Dim tempSheet As Worksheet
    Set tempSheet = Worksheets(sheetName)

    ' シェイプのオブジェクトを取得
    Dim tempShape As shape
    Set tempShape = tempSheet.Shapes(shapeName)

    ' シェイプにテキストを設定する
    tempShape.TextFrame.Characters.text = text

End Sub

あらかじめワークシート"Sheet1"にシェイプ"shikaku"を作成しておきます。

特定のシートが表示された時に、ワークシート"Sheet1"のシェイプ"shikaku"に表示されている文字列を「Piyo」に変更する場合は、下記の様なコードを書く事が出来ます。

Private Sub Worksheet_Activate()

 ' ワークシート"Sheet1"のシェイプ"shikaku"に「piyo」を設定する
    Call SetShapeText("Sheet1", "shikaku", "piyo")

End Sub 

サンプルコードを実行した結果を以下に示します。

シートを開くとシェイプ"shikaku"に「piyo」が表示されているのが確認出来ます。