Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9706 / 13644 ツリー ←次へ | 前へ→

【25870】イベントの発生方法 morimoto 05/6/17(金) 9:40 質問[未読]
【25871】Re:イベントの発生方法 MARBIN 05/6/17(金) 10:00 回答[未読]
【25873】Re:イベントの発生方法 morimoto 05/6/17(金) 10:20 発言[未読]
【25874】Re:イベントの発生方法 だるま 05/6/17(金) 10:22 回答[未読]
【25878】Re:イベントの発生方法 morimoto 05/6/17(金) 10:29 発言[未読]
【25887】Re:イベントの発生方法 MARBIN 05/6/17(金) 11:28 発言[未読]

【25870】イベントの発生方法
質問  morimoto  - 05/6/17(金) 9:40 -

引用なし
パスワード
   いつもお世話になります。

WorkSheet上にShapeオブジェクトを複数配置させ、
マウスせShapeを選択した際に、サイズをMsgboxで表示
させたいのですが、Shapeを選択した際に発生するイベント
が判りません。可能でしょうか?
ご教授の程宜しくお願いします。

【25871】Re:イベントの発生方法
回答  MARBIN  - 05/6/17(金) 10:00 -

引用なし
パスワード
   オートシェイプを右クリックしたら
「マクロの登録」というメニューがあると思います。

その「マクロの登録」をクリックしたらマクロ登録
画面に行きますので、「新規作成」をクリックします。

そうしたらVBE画面に移行し、

Sub オートシェイプ1_Click()

End Sub

というのが出ると思います。

そこにコードを記述すればOKです。

【25873】Re:イベントの発生方法
発言  morimoto  - 05/6/17(金) 10:20 -

引用なし
パスワード
   MARBIN さん

おはようございます。

説明不足で申し訳ありませんでした。
新規にShapeオブジェクトを追加しても対応可能にしたいのです。

WithEventで調べているのですが、グラフ等のSeleteイベントは
取得できるのですが、Shapeが選択された時のイベント発生が
判りません。

宜しくお願いします。

▼MARBIN さん:
>オートシェイプを右クリックしたら
>「マクロの登録」というメニューがあると思います。
>
>その「マクロの登録」をクリックしたらマクロ登録
>画面に行きますので、「新規作成」をクリックします。
>
>そうしたらVBE画面に移行し、
>
>Sub オートシェイプ1_Click()
>
>End Sub
>
>というのが出ると思います。
>
>そこにコードを記述すればOKです。

【25874】Re:イベントの発生方法
回答  だるま WEB  - 05/6/17(金) 10:22 -

引用なし
パスワード
   こんにちは

MARBIN さんの発想を受けて作ってみました。^d^

Sub 設定()
  Dim Shp As Shape
  For Each Shp In ActiveSheet.Shapes
    If Shp.Type = msoAutoShape Then
      Shp.OnAction = "myMsg"
    End If
  Next
End Sub

Sub myMsg()
  Dim Shp As Shape
  Set Shp = ActiveSheet.Shapes(Application.Caller)
  With Shp
    MsgBox .Width & " x " & .Height
    .Select
  End With
End Sub

【25878】Re:イベントの発生方法
発言  morimoto  - 05/6/17(金) 10:29 -

引用なし
パスワード
   ▼だるま さん:

ありがとうございます。

私も考えたのですが、監視状態中も他の処理を行うので、
負荷を考えると、イベントを作成できなかと。
やはり、難しいのでしょうか。

>こんにちは
>
>MARBIN さんの発想を受けて作ってみました。^d^
>
>Sub 設定()
>  Dim Shp As Shape
>  For Each Shp In ActiveSheet.Shapes
>    If Shp.Type = msoAutoShape Then
>      Shp.OnAction = "myMsg"
>    End If
>  Next
>End Sub
>
>Sub myMsg()
>  Dim Shp As Shape
>  Set Shp = ActiveSheet.Shapes(Application.Caller)
>  With Shp
>    MsgBox .Width & " x " & .Height
>    .Select
>  End With
>End Sub

【25887】Re:イベントの発生方法
発言  MARBIN  - 05/6/17(金) 11:28 -

引用なし
パスワード
   他のマルチ先は閉じてくださいね。

他では禁止されてますので。

9706 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free