オートシェイプ内に表示されている文字列(テキスト)を取得します。
''' <summary> ''' オートシェイプに表示されている文字列を取得する ''' </summary> ''' <param name="sheetName">シート名</param> ''' <param name="shapeName">シェイプ名</param> ''' <returns> ''' 表示されている文字列 ''' </returns> Public Function GetShapeText(sheetName As String, shapeName As String) As String ' ワークシートのオブジェクトを取得 Dim tempSheet As Worksheet Set tempSheet = Worksheets(sheetName) ' シェイプのオブジェクトを取得 Dim tempShape As shape Set tempShape = tempSheet.Shapes(shapeName) ' シェイプにテキストを設定する Dim retShapeText As String retShapeText = tempShape.TextFrame.Characters.text GetShapeText = retShapeText End Function
あらかじめワークシート"Sheet1"に、シェイプ"shikaku"を作成しておきます。
特定のシートが表示された時に、ワークシート"Sheet1"のシェイプ"shikaku"に表示されている文字列を取得する場合、下記の様なコードを書く事が出来ます。
Private Sub Worksheet_Activate() Dim shapeText As String shapeText = GetShapeText("Sheet1", "shikaku") MsgBox "Sheet1のシェイプshikakuの文字列は「" & shapeText & "」です" End Sub
サンプルコードを実行した結果を以下に示します。
シートを開くと、シェイプ"shikaku"で表示されていた文字列が取得出来ているのが確認出来ます。