こんにちは、ユーキです。
今回は、ユーザーフォームを作成する方法を紹介します。
ユーザーフォームとは
ユーザが自由に作成できる画面です。
文字を入力したり、結果を表示したり、実行ボタンを用意して処理開始のトリガーにしたりと使い方はいろいろです。
ユーザーフォームの作成方法
それでは、ユーザーフォームを作っていきましょう。
ユーザーフォームを挿入する
まずは、プロジェクトエクスプローラー(VBA画面の左端に表示されている画面)で、ユーザーフォームを追加したいプロジェクトを選択します。次に、右クリック → 挿入 → ユーザーフォームと選択すると、UserForm1が作成されます。
これでユーザーフォームが作成されました。
フォームに必要コントロールを追加する
ユーザーフォームが作成されても、何も表示されないただの画面です。何の入力も表示もできません。画面に必要コントロールを追加していきましょう。
今回は、テキストボックス、コマンドボタン、ラベルを追加します。
テキストボックスの追加
ツールボックスからテキストボックスを選択し、ドラッグ&ドロップをすればテキストボックスが追加されます。
ツールボックスからテキストボックスを選択し、ユーザーフォーム上でクリック&ドラッグで追加することも可能です。
コマンドボタンの追加
コマンドボタンもテキストボックスの同じように、ツールボックスからコマンドボタンを選択し、ドラッグ&ドロップで追加できます。
どれを選択してよいかわからない場合、カーソルを当ててしばらくすると、ツールチップでコントロールの説明が出ます。追加すべきコントロールのアイコンがわからない場合、この方法で確認をしましょう。
ラベルの追加
ラベルも、テキストボックス、コマンドボタンと同様に、ツールボックスからラベルを選択し、ドラッグ&ドロップで追加できます。
コントロールの配置を変更
配置したコントロールの位置を、変更します。
最初に配置した場所で良ければ、変更しなくてよいですし、後からでも変更できます。まずはざっくり配置するべきと思われる場所に配置をしましょう。
イベントを実装する
それでは、さっそくイベントを実装していきます。
コントロール名変更
イベントを実装する前に、配置したコントロールの名前を変更しておきます。
コントロールを選択し、右クリック → プロパティを選択します。プロパティ ウィンドウで(オブジェクト)がコントール名です。
自分がわかるようなコントロール名であれば、なんでもよいですが、先頭3文字でコントロールの種類がわかるようにしておくのが、オーソドックスかと思います。
一般的に使われる先頭3文字は以下のようになります。
テキストボックス | txt |
コマンドボタン | btn |
ラベル | lbl |
リストボックス | lst |
チェックボックス | chk |
ラジオボタン | rdo |
イベントを実装後でもコントロール名の変更はできますが、修正箇所が多くなり面倒です。コントロール名はイベント実装前に決定するようにしましょう。
今回、コントロール名は以下のようにしました。
- テキストボックス:txtInput
- コマンドボタン:btnCommand
- ラベル:lblMessage
イベントの実装
では、ボタンを押下した際のイベントを実装しましょう。
ユーザーフォーム画面で、コマンドボタンをダブルクリックします。
「btnCommand_Click()」という処理が追加されました。コマンドのダブルクリックではなく、自身で、「Private Sub btnCommand_Click()」を記述しても問題ありません。
テキストボックスに入力した文字列をラベルに表示する処理を実装してみましょう。
コードは以下のようになります。
Private Sub btnCommand_Click()
Me.lblMessage.Caption = Me.txtInput.Text
End Sub
実装はこれで終わりです。
動作検証
実装した処理を動かしてみましょう。
実行は、Sub/ユーザーフォームの実行ボタンで実行します。
画面が表示されたら、テキストボックスに文字列を入力して、コマンドボタンを押下してみましょう。
テキストボックスに入力した文字が、ラベルに設定されました。
右上の×ボタンを押下で処理は終了します。
まとめ
今回は、ユーザーフォームを作成する方法を紹介しました。
今回、使用しなかったコントロールはまだありますし、できることはまだまだたくさんあります。いろいろ試行錯誤しながら作成をしてみることをおススメします。
- ユーザーフォームの挿入で、作成する
- コントロール追加で必要部品を追加する
- イベントを実装する
少しでもお役に立てば、幸いです。