フォームを設定する例題

フォームを表示させてボタンを押すと、マクロを終了させるVBAを考えてみましょう。 フォームの表題を書きなおしてみます。プロパティウィンドウ上のドロップダウンリストからUserFormを選び、「Caption」に表題を入力します。プロパティウィンドウへの設定内容は、リアルタイムにフォームに表示されます。

図3:フォームの表題表示

次にボタンを貼り付けます。フォームの上をクリックするか、[表示]-[ツールボックス]でツールボックスが表示されます。ツールボックスのコマンドボタンをクリックしてマウスをフォームの上に持って行き、設定したい場所で、ドラッグし、ボタンの大きさを決めます。 表示させたい文字はVBEの左側に表示されているプロパティの「Caption」に書き込みます。

図4:ボタンの設定

ボタンの設定がおわりました。今度はこのボタンを押したときにマクロを終了させるVBAの書き方です。ボタンをダブルクリックします。

図5:ボタンのVBA設定場所

マクロを終了させるだけなので、以下のように(1)、「End」を書き込みます

[リスト1]CommandButton1_Click

Private Sub CommandButton1_Click()
    End                '(1)
End Sub

ボタンをダブルクリックすると「CommandButton1_Click」と書かれたマクロを書くブロックができました。ボタンのようなコントロールはユーザが何か処理を行った時に(たとえばマウスでクリックしたとき等)発生するイベントを持っています。そして、このイベントに対応する処理を書くためのブロックがイベントハンドラです。各コントロールによって、行える処理は変わります。「CommandButton1_Click」はボタンをクリックしたときにブロック内に書かれたVBAを実行するものです。

どのようなイベントがあるかは、フォームのコードブロックの上にあるコンボボックスの左側でコントロールを選び、右側でイベント(コントロールで処理できるもの)を表示させることができます。イベントを選ぶとイベントハンドラがコードブロックに表示されます。コンボボックスに書かれているコントロール名は現在フォームに貼り付けているコントロールです。

図6:イベントの設定

Windowsになって、プロブラムの作成方法が、イベントドリブン(イベント駆動型)になりました。使う人がマウスを動かしたり、ボタンを押したりなどの操作を行った時(イベントが発生すると言います)にプログラムを動かすというものです。各コントロールの中にマウスでクリックされたときの処理、キーを押されたときの処理などのイベントハンドラといわれるものが用意されています。イベントハンドラの中に、VBAで実行したい処理を書き、プログラムを作成して行きます。