コマンドボタンにプログラムを登録
という事で前回の続きをやっていきましょう。
前回行ったのが
- ユーザーフォームを作る
- テキストボックスを作る
- コマンドボタンを2個作る
- コマンドボタンの表示文字を変更する
でしたね。
で、今回は前回作ったコマンドボタンにプログラムを登録してボタンが押されたらプログラムが発動。というものを作ろうじゃないかという事ですね。
キャンセルボタンを作成
キャンセルボタンは非常にシンプルなのでキャンセルボタンから記述していきましょう。
まずは前回作ったユーザーフォームの「キャンセル」と書いた方のコマンドボタンをダブルクリックか右クリックでコードの表示をしてみましょう。
そうすると標準モジュールのような画面に切り替わります。
しかし、自分で作っていないのに勝手に
Private Sub CommandButton2_Click() End Sub
と書かれていますね。
これは、ボタンを選択してコードを表示すると自動的に発動するプログラムを書くスペースが出来上がるからなのです。
プロシージャの名前もCommandButton2_Clickとわかりやすいですね。
ちなみにCaptionと混ざってしまいがちなのですが、このユーザーフォームのパーツの名前はオブジェクト名というものになります。
先程プロシージャ名に書かれていた「CummandButton2」とはまさにコードの表示をしたパーツ名の事なんですね。
プログラムを記述しましょう
という事で前置きが長くなってしまいましたがキャンセルのプログラムを書いてみましょう。
Private Sub CommandButton2_Click() Unload Me End Sub
なんとプログラムの本文は驚きの1行。
UnloadとはLoadの逆で読み込んだものを破棄するという意味ですね。
Meとは自分自身の事。このユーザーフォーム本体のオブジェクトは「UserForm1」なのでUnload UserForm1でもいいのですが、そのUserForm1というものをMeというもので表現できるのでそちらの方が手数が少なくてわかりやすいですよね。
という事で自分自身をUnloadする場合はMeを使っていきましょう。
試してみましょう
ではF5ボタンを押してユーザーフォームを呼び出してみましょう。
先程作った入力メニューが表示されましたね?
ここで「実行」ボタンを押しても何も起きないのに対し「キャンセル」ボタンを押すとユーザーフォームが閉じるのが確認出来ると思います。
という事でキャンセルボタンの出来上がりです。
では次回はエラートラップも交えながら実行ボタンのプログラムを書いていきたいと思います。