• ベストアンサー

Excelのシート上のShapeにイベントは設定できる?

タイトル通りですが、Shapeにイベントを発生させることは できるのでしょうか? Click、MouseMove とかですが・・・ よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 私は、うまく言葉では説明できないので、以下のようなサンプルを作ってみました。 ".OnAction"  で設定させます。ただ、これが、Sheet1 などのローカルモジュールですと、 マクロ名は、それぞれのシートを指定しないといけません。 '標準モジュール Sub TestShape()   Dim x1 As Double, y1 As Double   Dim x2 As Double, y2 As Double   Dim dWidth As Double, dHeight As Double   'アクティブセルから、四角形の設定   With ActiveCell     x1 = .Left     y1 = .Top   End With   With ActiveCell.Offset(5, 3)     x2 = .Left     y2 = .Top   End With   dWidth = x2 - x1   dHeight = y2 - y1      With ActiveSheet.Shapes.AddShape(msoShapeRectangle, x1, y1, dWidth, dHeight)     .OnAction = "SubTest1"   End With End Sub '-------------------------------- Sub SubTest1()   MsgBox "SubTest1マクロが実行されました", 64 End Sub

wakaranai_kun
質問者

お礼

ありがとうございます。 OnActionですか。 メニューをつくるときと同じですね。 非常にたすかりました。 また、よろしくお願いします。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

表示ーツールバーー図形描画 オートシェイプの例えば四角をクリックして、シートに貼り付ける。 四角部分で右クリックーマクロの登録ー新規作成(か編集)で Sub 四角形1_Click() End Sub が現れます。 直線などでも同じです。 とりあえずClickイベントだけ認められているようです。 それ以上のイベントを作るのは、VBAを越えたウインドウプログラムとAPIとかの熟練スキルがいると思います。 私もわからないが雰囲気だけ下記で http://www.wisdomsoft.jp/dev/api/windows/032

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 せいぜい、右クリックして、マクロの登録で出来る範囲ぐらいだと思います。 言い換えると、Click イベントです。 それ以上のことは、オートシェイプ自体では、一応、無理だと考えたほうがよいようです。 後は、コントロールツール(Active X コントロール)から、Form で使う Image とかをシートに貼り付けるしかないと思います。

wakaranai_kun
質問者

お礼

ありがとうございます。 Clickが取れるとわかっただけでもたすかります。 できればオートシェイプでやりたいですね。 ついでになのですが、Shapeは実行時にVBAで配置し ていますがこの実行時にそのClickイベントも同時 に書き込むことは可能なのでしょうか?

関連するQ&A

専門家に質問してみよう