Softex CelwareTech Blog
Excel VBA2026-05-27

クリックされた図形を取得するExcel VBA汎用関数 GetShapePushed

図形のOnActionから呼ばれたマクロ内で、クリック元のShapeを取得するExcel VBA汎用関数を解説します。

Excel VBA汎用プロシージャApplication.CallerShape図形ボタン

概要

GetShapePushedは、図形ボタンのOnActionで呼ばれたマクロ内から、クリックされた図形を取得する関数です。

Application.Callerでクリック元の図形名を取得し、GetShapeByNameShapeオブジェクトへ変換します。

使う場面

  • 複数の図形ボタンで同じマクロを使いたい
  • どの図形が押されたかを判定したい
  • クリックされた図形の色や文字を変更したい
  • 図形名をキーにして処理を分岐したい

使用例

図形に割り当てたマクロ内で呼ぶと、クリックされた図形を取得できます。

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だけでは文字列です。実際に図形の色や位置を操作するには、GetShapeByNameShapeとして取得します。

関連記事

注意点

  • OnAction経由で呼ばれる処理を前提にしています。
  • アクティブシート上の図形を対象にします。
  • 図形名が変更されている場合は取得できません。

軽いまとめ

GetShapePushedは、図形ボタンを使ったExcel UIでよく使う小さな部品です。クリック元の図形を取得できると、1つのマクロを複数ボタンで共通化しやすくなります。

この技術で業務改善しませんか?

Excel VBA・GAS・Webアプリで業務の自動化ツールを開発しています。 「こんなことできる?」というご相談だけでもお気軽にどうぞ。

無料相談はこちら →