VBAのユーザーフォームで表示や閉じるボタンを作る方法
ExcelのVBAを作成していると作りたくなる「ユーザーフォーム」ですが、まず始めに表示させる方法と閉じる方法が分からないと進めれないですよね。
そこでこの記事ではVBAでユーザーフォームの表示や閉じる方法を紹介します。
ユーザーフォームを開く際にも2つのコード例がありますので、それぞれ違いも含めて紹介します。
VBAのユーザーフォームを表示させる方法
ユーザーフォームを作成する手順からコードまで紹介します。
まずはAlt+11で入力画面を呼び出し、「挿入」タブからユーザーフォームを選択します。
続いてボタンを設置していきましょう。
コントロールの中にあるコマンドボタンを選択し、配置したい位置に左上から右下にドラッグします。
(ボタンの大きさは後から編集可能)
次はボタンの表示される名称を編集します。
ボタンを右クリックして「プロパティ」を選択し、Captionの部分を「閉じる」と入力します。
続いてユーザーフォームを開くためのコードを入力します。
まずは「挿入」タブから「標準モジュール」を選択し、以下のように入力します。
1 2 3 |
Sub 表示() UserForm1.Show End Sub |
Alt+11でExcelのsheetの画面に変わりますので、「開発」タブの「挿入」からボタンを設置します。
配置したいセルをクリックしたらマクロの登録画面が開きますので、先ほどのマクロを選択しましょう。
ボタンを表示して、実際にユーザーフォームが開いたらOKです。
モードレスで表示させたまま他の操作も出来る
UserForm1.Showの場合、ユーザーフォームが表示されている間はセルの編集や入力ができない状態です。
しかし、モードレスの設定をすることでユーザーフォームを表示した場合でも操作することが可能です。
入力は以下のようになります。
1 2 3 |
Sub 表示モードレス() UserForm1.Show vbModeless End Sub |
ShowのあとにスペースとvbModelessを入力するだけでモードレスになる
閉じるボタンのコード作成
次はコードを入力します。
Alt+11で入力画面を表示させ、ユーザーフォームをクリックします。
続いて「閉じる」のボタンをダブルクリックします。
以下のように入力しましょう。
1 2 3 |
Private Sub CommandButton1_Click() Unload UserForm1 End Sub |
ひこUnload UserForm1の入力はUnload MeでもOK
閉じるボタンをダブルクリックしましょう。
Excelのsheetの画面に戻って、実際に閉じるボタンが動作するか確認してみましょう。
まとめ
今回はVBAでユーザーフォームの表示や閉じる方法について紹介しました。
開く、閉じるはユーザーフォームの中でも基本的な部分ですが、実はモードレスについては知らない方も多くいます。
Excelのsheetによってもモードレスにした方が良い場合とそうでない場合があると思いますので、あなたの作業で使いやすいようにアレンジしてみましょう。
Excelの機能を使いこなすと、仕事の効率化から大きな時間短縮に繋がります。
仕事術のスキルが増えるとプライベートの時間を時間を増やすことができますので、当サイトで得た知識を是非活用していきましょう。
以下のExcel記事もおすすめです。