オートシェイプ内に表示されている文字列(テキスト)に対して、任意の文字列を設定し表示します。
''' <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」が表示されているのが確認出来ます。