• 締切済み

ExcelVBA 図形をクリックした際のイベントを拾うには

いつもお世話になります。 タイトルにある通りです。 クリックした図形のイベントを拾いたい、かつ図形を普通に動かしたいのです。 実現する方法の一つに、図形にマクロを登録し、「Application.Caller」で拾う方法があります。 しかしこの方法では、クリックした度にマクロが走ってしまい、図形を動かすことができません。 これ以外で、何か良い方法があればおしえて頂けませんでしょうか。 ApplicationCallerの使い方が悪いのかもしれません。 なのでなんでもよいので実現できる良い方法があれば教えて頂きたいです。 よろしくお願いします。

みんなの回答

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>クリックした度にマクロが走ってしまい、図形を動かすことができません。 図形を動かすだけのマクロを書けば良いのでは クリックする度に右に50ポイント、下に50ポイント動かします。 Sub test()   With ActiveSheet.Shapes(Application.Caller)     .IncrementLeft 50     .IncrementTop -50   End With End Sub

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

単純な案ですが。 案その1 シートのどこかにトグルボタンでも置いて、イベント有効・無効のFlagを設定し、図形をクリックしたイベントのコード中で分岐処理する。(簡単には、特定セルに入れた1,0などの値で分岐でもOK) 案その2 右クリックで、図形を動かす (そんなの案の内に入らないと言われそうですが) ご参考まで。