Tip:
Highlight text to annotate it
X
第二章では、イベントについて解説します
イベントを使用すると、様々なタイミングで、
マクロを実行することが、できます
イベントは、ユーザーが、マウスやキーボードを使って、
フォームや、コントロールに対して行った操作のことです
VBAでは、マクロを動かすきっかけとして、
イベントを、使用します
イベントは、オブジェクトによって、種類が決まっています
例えば、「コマンドボタン」には、
クリックされたときに発生する、「Clickイベント」、
マウスポインタが、ボタンの上に来たときに発生する、
「MouseMoveイベント」が、あります
また、「ブック」には、「ブック」が開かれたときに発生する
「Openイベント」や、アクティブになったときの、
「Activateイベント」が、あります
これらのイベントが発生したときに、
自動的に呼び出される、プロシージャがあります
それは、「イベントプロシージャ」と、言われるものです
まずは、ブックが開かれたときに、
フォームが、自動的に起動するようにします
使用するイベントは、
ブックが開かれたときに発生する、オープンイベントです
プロジェクトエクスプローラーで、
「ThisWorkbook」を、ダブルクリックしてください
デザインウィンドウから、コードウィンドウに、
表示が切り替わります
コードウィンドウ左上のボックスを、
「オブジェクトボックス」と、呼びます
オブジェクトボックスの、ドロップダウンリストを表示します
一覧から、「Work book」を、選択しましょう
すると、コードウィンドウに、
空のプロシージャが追加されます
これが、ブックのオープンイベントが発生したときに、
呼び出される、ブックのオープンイベントプロシージャです
イベントプロシージャは、オブジェクト名とイベント名を、
アンダースコアで繋いだものが、プロシージャ名になります
さきほど、オブジェクトボックスで、
ワークブックを選択したら、自動的に、
オープンイベントが、選択されました
これは、ワークブックオブジェクトの標準イベントが、
オープンイベントに設定されている為です
他のイベントを使用する場合には、
オブジェクトボックスの右側にある、
「プロシージャボックス」の、ドロップダウンリストから、
選択します
では、イベントプロシージャの中に、
フォームを自動的に起動するように、
コードを追加しましょう
「UserForm1.」と、入力して
リストから、「Show」を選択します
ここでは、対象となるオブジェクトを指定する為に、
「UserForm1.」と、記述しています
「Show」は、フォームを表示するメゾットです
プロジェクトエクスプローラーで、
「UserForm1」を、ダブルクリックしましょう
デザインウィンドウに切り替わり、
フォームが選択されている状態に、なっています
プロパティウィンドウを確認すると、
その他の項目の中に、「オブジェクト名」が、あります
これは、ネームプロパティの事です
フォームやコントロールは、ネームプロパティの名前で、
オブジェクトを、指定します
では、イベントプロシージャの動作を確認してみましょう
ブックを、一度閉じて下さい
「Sample」ファイル、「社員名簿.xls」を、再び開きます
セキュリティ警告ダイアログで、
「マクロを有効にする」を、選択すると、
フォームが自動的に起動してきました
ワークブックの、オープンイベントプロシージャが、
正しく動作するのが、確認できました
右上の、閉じるボタンをクリックして、
フォームを閉じてください
続いて、フォームが表示されたときに、
テキストボックスに、シートのデータを表示するようにします
フォームの起動時には、二行目のデータを表示します
「次へ移動」ボタンをクリックしたときは、
次の行のデータを、
「前へ移動」ボタンをクリックしたときは、
前の行のデータを、表示します
つまり、3つのイベントが発生したときに、
処理を実行することになります
1つ目は、フォームが表示されるときで、
使用するのは、「Initializeイベント」です
これは、フォームが読み込まれ、
表示される直前に発生するイベントです
残りの2つは、
コマンドボタンがクリックされたときに発生する、
「Clickイベント」です
まずは、フォームのイニシャライズのイベントプロシージャを
作成しましょう
その前に、フォームに配置されている、
コントロールのオブジェクト名を、確認しておきましょう
それぞれのオブジェクトは、画面のような名前になっています
覚えておいてください
では、イベントプロシージャを作成します
コードウィンドウには、フォームが表示されているので、
コードに表示を切り替えます
フォーム上で右クリックして、
メニューから、「コードの表示」をクリックするか、
あるいは、プロジェクトエクスプローラ左上の、
「コードの表示」ボタンを、クリックします
コードを表示することが、できました
コードウィンドウには、フォームのクリックイベントが、
自動的に作成されています
オブジェクトボックスは、「UserForm」が選択されています
プロシージャボックスから、「Initialize」を選択しましょう
フォームの、イニシャライズイベントプロシージャが、
追加されました
プロシージャの上に、「フォームの初期設定」と、
コメントを付けます
クリックイベントは、必要無いので削除しておきましょう
続いて、コマンドボタンのクリックイベントを
追加していきます
これは、今までと別の操作方法で
イベントプロシージャを、追加してみます
プロジェクトエクスプローラーの上にある、
左から2つ目の、「オブジェクトの表示」ボタンを、
クリックしてください
フォームを、表示することができました
「前へ移動」ボタンを、ダブルクリックしましょう
コードウィンドウに切り替わり、
「CommandButton2」のクリックイベントが、追加されました
オブジェクトを、ダブルクリックすると、
標準に設定されている、イベントのプロシージャを、
追加することができます
同じように、「次へ移動」ボタンもダブルクリックして、
クリックイベントを、追加して下さい
「CommandButton2」の上には、「前へ移動」、
「CommandButton3」の上には、「次へ移動」と、
コメントを付けておきましょう