Excel VBA:オートシェイプにマクロを割当てCallerで名前取得

オートシェイプにOnActionでマクロを割当て、Callerで名前を取得するVBA




Homeに戻る > Excel オートシェイプのTipsへ

Excelのシェイプへのマクロの割当ては、tshape.OnAction = "マクロ名" でできます。

割当てたマクロのプロシージャを標準モジュールに作成します。

オートシェイプの名前は、Application.Caller で取得できます。

今回はクリックされるとA1セルに名前が表示されるようにします。


オブジェクトにマクロの名前を設定する、または返す、OnActionプロパティの構文

構文

オブジェクト名.OnAction


関連する「オートシェイプの名前を調べ削除する」を掲載していますので、参考にしてください。



オートシェイプにマクロを割当てCallerで名前取得

ExcelシートのVBAコード

Option Explicit

Sub ExMakeShape()
    Dim tshape As Shape
    
    'オートシェイプの作成
    With ActiveSheet.Rang("B6:D15")
        Set tshape = ActiveSheet.Shapes.AddShape(Type:=msoShapeVerticalScroll, _
        Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
    End With
    '名前を付ける
    tshape.Name = "シェイプ01"
    'クリックされた時のマクロを割り当てる
    tshape.OnAction = "ExShapeClick"
    
    Set tshape = Nothing
End Sub

'ボタンのクリックイベント
Private Sub CommandButton1_Click()
    ExMakeShape
End Sub

標準モジュールのVBAコード

Option Explicit

Sub ExShapeClick()
    Dim kname As String
    
    'オートシェイプの名前を取得
    kname = Application.Caller
    Range("A1") = kname
End Sub

Excel実行画面

「オートシェイプ作成」ボタンをクリックすると、シェイプが作成されます。

オートシェイプをクリックすると、イベントが発生しシェイプ名がA1セルに表示されます。

オートシェイプの作成結果


Homeに戻る > Excel オートシェイプのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved