概要
GetShapePushedは、図形ボタンのOnActionで呼ばれたマクロ内から、クリックされた図形を取得する関数です。
Application.Callerでクリック元の図形名を取得し、GetShapeByNameでShapeオブジェクトへ変換します。
使う場面
- 複数の図形ボタンで同じマクロを使いたい
- どの図形が押されたかを判定したい
- クリックされた図形の色や文字を変更したい
- 図形名をキーにして処理を分岐したい
使用例
図形に割り当てたマクロ内で呼ぶと、クリックされた図形を取得できます。
Public Sub SampleShapeClick()
Dim shp As Shape
Set shp = GetShapePushed()
If shp Is Nothing Then Exit Sub
MsgBox shp.Name
End Sub
コピー可能な実装コード
GetShapePushed.bas
vba
コードを読み込み中...初心者向けコード解説
Application.Callerは、OnActionで呼ばれたマクロに対して、呼び出し元の名前を返します。図形から呼ばれた場合は、その図形名を取得できます。
ただし、Application.Callerだけでは文字列です。実際に図形の色や位置を操作するには、GetShapeByNameでShapeとして取得します。
関連記事
注意点
OnAction経由で呼ばれる処理を前提にしています。- アクティブシート上の図形を対象にします。
- 図形名が変更されている場合は取得できません。
軽いまとめ
GetShapePushedは、図形ボタンを使ったExcel UIでよく使う小さな部品です。クリック元の図形を取得できると、1つのマクロを複数ボタンで共通化しやすくなります。
