トップページ

#8_4 ユーザーフォームのイベント


イベントとは?

イベントとは「ブックを開く」「ダブルクリック」「右クリック」などのユーザーの動作のことです。そのイベントが行われた時に作動するマクロのことを「イベントマクロ」と呼びます。(イベントマクロについては第15章にて詳細を述べます。)

例えばユーザーフォーム上でクリックするとClickイベント、ダブルクリックするとDblClickイベントが発生します。そのイベントを読み込んで処理を設定するのです。例としては、「シートをダブルクリックすると保存する」「シートを閉じようとすると警告する」等のマクロが作成できます。

一見難しそうですが、VBEから簡単に実現できます。

イベントマクロを作成しよう

手始めにユーザーの動作が「クリック」か「右クリック」か「ダブルクリック」かを判別し、表示させると言うマクロを作りましょう。

ユーザーフォームを右クリックして「コードの表示」を選びます(もしくはユーザーフォームをダブルクリック)。すると、次の画面が出てくるので、下のように設定します。

その後、各イベントの項目に対して以下の処理を記述します。UserForm1.Captionで、「UserForm1」のタイトル部分の名前を変更しています。

これでイベントごとに処理をするイベントマクロの完成です。

ちなみに気になる「Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)」の部分ですが、ここには色々な文法が混ぜ込まれているので、後の章でそれぞれ解説します。

現時点ではわからなくても全く気にする必要はないのですが、ざっくり説明すると「Private」は他のモジュールのマクロからこの関数(UserForm_DblClick)を呼び出させないようにするキーワードです。

また、ByValは「値渡し」という方式で変数を関数に渡すという意味です。ここでは「MSForms.ReturnBoolean」という定義されたデータ型の「Cancel」という変数を関数(UserForm_DblClick)に「値渡し」で渡すという意味です。

これらの「値渡し」や「ユーザー定義関数」等はのちの章で詳しく説明します。