えくせるちゅんちゅん

ことりがエクセルをちゅんちゅんするブログ

VBEでオブジェクトのどのイベントを使えば良いのか簡単に調べる方法

今回はVBEでWorksheetの全てのイベントを検知してDebug.Printするためのコードを素早く作成する方法を動画でお送りします。


前置き

VBAで●●した時に起こるイベントが知りたい?

イベントが多すぎてマニュアルを見ても良くわからない?


そんな貴方にオススメなのが、

全部のイベントをフックしてみる

方法です。


動画

VBEでWorksheetの全てのイベントを検知してDebug.Printするためのコードを素早く作成する方法

youtu.be


補足

動画を見れば十分だと思いますが、一部早すぎたところがあるので補足しておきます。

VBEにて

1.イベントを作りたいオブジェクトを選びます。

VBAオススメのイベントが勝手に作られます。

f:id:Kotori-ChunChun:20190822205557p:plain

2.一番先頭のイベントを作ります。

f:id:Kotori-ChunChun:20190822205638p:plain

3.右手のマウスでコンボボックスをクリック → 左手で↓キーEnterキーを打鍵

あとはこれを一番下にいくまで、ひたすら繰り返します。

多少適当にやっても大丈夫ですが、↓キーを2回押さないようにだけは気をつけましょう。

f:id:Kotori-ChunChun:20190822210056p:plain

4.Ctrl+Aでコードを全て選択→Ctrl+Xで切り取り→Alt+F11でエクセルへ切り替え

Excelにて

1.A1に貼り付け、選択状態を維持したまま右クリックして並べ替え(O→S

2.Shift+左クリックEnd Subの最終行までを選択して、削除(Ctrl+マイナスまたは右クリック→D)、すかさずEnter

f:id:Kotori-ChunChun:20190822210641p:plain

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列をコピー

f:id:Kotori-ChunChun:20190822210923p:plain

5.適当な余白に値として貼り付け(右クリックV)、すかさずコピーし、Alt+F11でVBEへ切り替え

f:id:Kotori-ChunChun:20190822212511p:plain

仕上げ

VBEに貼り付けて完了!

f:id:Kotori-ChunChun:20190822212342p:plain

慣れればここまで1分30秒です!


まとめ

たったの2分弱で「とりあえず何時イベントが起こるのかわかる」状態にすることができます。

Microsoftのドキュメントを読むのは当然ですが、公式の説明はなかなか分かりづらくて解読には時間がかかりますよね。

全てのイベントを登録しておけば、「イベントが何時起こるのか」「どんな時にどんなイベントが起こるのか」さっぱり分からない状況でも、実際に動かして体感することができます。

「読む」よりも「書く」ほうが勉強になるとはこういう事です。(たぶん)

以上


何か御座いましたらコメント欄、またはTwitterからどうぞ♪

それではまた来週♪ ちゅんちゅん(・8・)