オートシェイプに登録されたマクロ名を取得します。
''' <summary> ''' オートシェイプに登録されているマクロ名を取得する ''' </summary> ''' <param name="sheetName">シート名</param> ''' <param name="shapeName">シェイプ名</param> ''' <returns> ''' オートシェイプに登録されているマクロ名 ''' </returns> Public Function GetShapeActionMacro(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 retMacroName As String retActionMacro = tempShape.OnAction GetShapeActionMacro = retActionMacro End Function
ワークシート"Sheet1"のシェイプ"shikaku"に登録されているマクロ名を取得する場合には、下記の様なコードを書く事が出来ます。
Private Sub Worksheet_Activate() Dim sctionMacroName As String sctionMacroName = GetShapeActionMacro("Sheet1", "shikaku") MsgBox "Sheet1のシェイプshikakuの登録マクロは「" & sctionMacroName & "」です" End Sub
シートを開くと、あらかじめ登録していたマクロ「Sheet1.hogeMacro」が取得出来ているのが確認出来ます。