今回はVBEでWorksheetの全てのイベントを検知してDebug.Printするためのコードを素早く作成する方法を動画でお送りします。
前置き
VBAで●●した時に起こるイベントが知りたい?
イベントが多すぎてマニュアルを見ても良くわからない?
そんな貴方にオススメなのが、
全部のイベントをフックしてみる
方法です。
動画
VBEでWorksheetの全てのイベントを検知してDebug.Printするためのコードを素早く作成する方法
補足
動画を見れば十分だと思いますが、一部早すぎたところがあるので補足しておきます。
VBEにて
1.イベントを作りたいオブジェクトを選びます。
VBAオススメのイベントが勝手に作られます。
2.一番先頭のイベントを作ります。
3.右手のマウスでコンボボックスをクリック → 左手で↓キー
→Enterキー
を打鍵
あとはこれを一番下にいくまで、ひたすら繰り返します。
多少適当にやっても大丈夫ですが、↓キー
を2回押さないようにだけは気をつけましょう。
4.Ctrl+A
でコードを全て選択→Ctrl+X
で切り取り→Alt+F11
でエクセルへ切り替え
Excelにて
1.A1に貼り付け、選択状態を維持したまま右クリックして並べ替え(O→S
)
2.Shift+左クリック
でEnd Sub
の最終行までを選択して、削除(Ctrl+マイナス
または右クリック→D
)、すかさずEnter
3.以下のような数式を順次入力(こればかりはExcelの文字列処理になれるしかありません)
B1 =SUBSTITUTE(A1,"Private Sub ","") C1 =LEFT(B1,FIND("(",B1)-1) D1 =": Debug.Print """&C1&""" & http://Me.Name : " E1 End Sub
4.A列・D列、E列をコピー
5.適当な余白に値として貼り付け(右クリック
→V
)、すかさずコピーし、Alt+F11
でVBEへ切り替え
仕上げ
VBEに貼り付けて完了!
慣れればここまで1分30秒です!
まとめ
たったの2分弱で「とりあえず何時イベントが起こるのかわかる」状態にすることができます。
Microsoftのドキュメントを読むのは当然ですが、公式の説明はなかなか分かりづらくて解読には時間がかかりますよね。
全てのイベントを登録しておけば、「イベントが何時起こるのか」「どんな時にどんなイベントが起こるのか」さっぱり分からない状況でも、実際に動かして体感することができます。
「読む」よりも「書く」ほうが勉強になるとはこういう事です。(たぶん)
以上
何か御座いましたらコメント欄、またはTwitterからどうぞ♪
それではまた来週♪ ちゅんちゅん(・8・)