ユーザーフォームにボタンを貼り付ける
ユーザーフォームのダイアログを閉じるにはダイアログ右上の「閉じる×」をクリックしますが、フォーム上にも「閉じる」ボタンを貼り付けてみましょう。
図22:ユーザーフォームにボタンを貼り付ける。
ユーザーフォームに貼り付けたボタンをダブルクリックすると、コードウインドウが表示されてPrivate Sub CommandButton1_Clic() End Subと表示されます。
図23:ボタンクリックの処理を書く。
これは「コマンドボタンをクリックした時にフォームを閉じる処理を書きなさい。」という意味ですので、Private Sub CommandButton1_Click() Unload UserForm1 End Subと記述します。
ボタンのプロパティでCaptinに「閉じる」と記述すると、ボタン上にCaptionで設定した文字列が表示されます。
図24:
F5キーを押すとダイアログが表示され、「閉じる」ボタンをクリックすると終了します。
図25:
このように「ユーザーフォーム」上に「ツールボックス」の「コントロール」を貼り付け、コントロールに対するアクション(ボタンコントロールをクリックするなど)に対応した処理を記述することがVBAのプログラミングです。
このようなアクションを「イベント」と呼び、CommandButton1_Click() を「イベントプロシージャ」と呼びますが、CommandButton1がオブジェクトの名前でClickがイベントの名前です。 つまり、ユーザーがCommandButton1という名前のコマンドボタン(オブジェクト:物)をクリック(Click)すると実行されるイベントプロシージャです。
このようにイベントに対する処理のプログラムを記述するのがVBAで、VBAのような言語を「イベント駆動型のオブジェクト指向プログラミング言語」とも呼びます。
「オブジェクト指向」とは、プログラムを記述する対象を「もの」として考える手法で、この「もの」をオブジェクトといいますが、これはかなり難解な概念ですから覚える必要はありません。
「オブジェクトに対して発生したイベントに対応する処理を記述する。」
「閉じる」ボタンがオブジェクトです。ユーザーフォームもオブジェクトです。
VBEでユーザーフォームをダブルクリックするとPrivate Sub UserForm_Click() End Subというコードウィンドウが表示されます。
このように個別に処理をする小さなプログラムを作成して、それらを組み合わせて大きなシステムを構築するのがVBAに限らずオブジェクト指向型プログラミングの特徴です。
![]()
![]()
![]()
© AstroHeart. All Rights Reserved.