ExcelのVBAには、ユーザーフォームという便利な機能があります。マクロを少し使う程度あれば、ユーザーフォームを使わなくても問題ありませんが、ユーザーフォームが使えるようになれば、とても便利です。
この記事では、ユーザーフォームを表示する(呼び出す)方法とユーザーフォーム閉じる方法についてご紹介します。
「show」でユーザーフォームを表示する
ユーザーフォームを表示する方法はとても簡単です。
○○○.Show
※○○○には、ユーザーフォーム名が入ります。
実際にユーザーフォームを作って、ユーザーフォームを呼び出してみましょう
ユーザーフォームを作る
- Step1VBEを起動する
①エクセルを開きます。
②[Alt]+[F11]でVBEを起動します。
- Step2ユーザーフォーム作成
①プロジェクトのWindowを右クリックします。
②挿入>ユーザーフォームをクリックします。
③ユーザーフォームが作成されました。
- Step3ユーザーフォームの名前を変更
①ユーザーフォームを選択します。
②プロパティのオブジェクト名を確認すると「UserForm1」となっています。
③オブジェクト名を「UFテスト」に変更します。
※日本語でも大丈夫です。 - Step4コマンドボタン設置
①ツールボックスのコマンドボタンを選択します。
②ユーザーフォームの設置したいところを左クリックで開始し、左クリックを離す位置で大きさを決めます。
③コマンドボタンが設置されました。
- Step5コマンドボタンの名前と表示を変更
①コマンドボタンを選択します。
②プロパティの以下の項目をそれぞれ変更します。
オブジェクト名:CommandButton1 → cbEnd
Caption:CommandButton1 → 終了
※Captionを変えるとコマンドボタンの表示が変わります。③コマンドボタンの表示も変わりました。
- Step6完了
これでユーザーフォームの準備が完了です。
ユーザーフォームを呼び出す
ユーザーフォームを呼び出すコードを作成します。コードを記述する箇所は、標準モジュールです。
Sub ユーザーフォーム呼び出し()
UFテスト.Show
End Sub
ちなみに、ユーザーフォームが存在する場合、ユーザーフォームのオブジェクト名を入力後、ピリオド(.)を入力すると候補が表示されます。
セルを選択してもユーザーフォームを開いたままにしたい
ユーザーフォームをそのまま呼び出した場合、ユーザーフォームが前に表示され、後ろのエクセルを選択しようとしても選択できずエラー音が鳴ります。
ユーザーフォームを開いた状態でセルを選択できるようにするには、「Show」の後に半角スペースを入力し、「vbModeless」と入力します。
Sub ユーザーフォーム呼び出し()
UFテスト.Show vbModeless
End Sub
このコードでユーザーフォームを呼び出すとセルが選択できるようになります。
ユーザーフォームを閉じる
ユーザーフォームを表示させたら、ユーザーフォームを消すコードも必要になります。
Unload Me
で、ユーザーフォームを消すことができます。
ユーザーフォームの右上の「×」ボタンで消すこともできますが、わかりやすく終了ボタンを設置するほうが使いやすいです。
実際に、次の手順で先ほど設置した終了のコマンドボタンを押すと、ユーザーフォームを閉じるようにしてみましょう。
- Step1プロシージャ作成
①ユーザーフォームの作成画面で、コマンドボタンをダブルクリックします。
②コマンドボタンをクリックしたときのプロシージャが作成されます。
- Step2コード入力
①下記コードを入力します。
Private Sub cbEnd_Click() Unload Me End Sub
- Step3完成
これで完成です。
ユーザーフォームを呼び出して、ユーザーフォームを終了する
実際にユーザーフォームを呼び出して、終了させてみましょう。
①[Alt]+[F11]でVBEを起動します。
②先ほど作成したユーザーフォームを呼び出しのプロシージャにマウスカーソルを合わせた状態で、[F5]キーを押します。
③ユーザーフォームが呼び出されました。
④終了ボタンをクリックすると、ユーザーフォームが閉じて終了となります。
コメント