ユーザーフォームとは?

ユーザーフォームとは下記の画像のような物を言います。
UserForm
このユーザーフォームの便利な使い方として、選択しているリストをExcelへ反映したり、選択しているリストを元にサイトへアクセスしたりする等に使うことが出来ます。

ユーザーフォームの実行

では実際にユーザーフォームを実行してみましょう。

UserForm.xlsm

こちらのExcelをダウンロードし、Sampleというマクロを実行してみてください。
※実行方法が分からない場合はVBAを始める準備VBAとは?をご覧ください。

Sampleというマクロを実行すると最初の画像の様に「この中で好きな映画のジャンルは?」というユーザーフォームが出てくると思います。
このユーザーフォームの好きなジャンルを選び、決定を押すとアクティブセルとアクティブセルの右に選択しているリストのジャンルを表示してくれます。

ではこのユーザーフォームの作り方を説明したいと思います。

ユーザーフォームの作成方法

まず、今までの標準モジュールの作成方法と同じように「開発タブ」より「Visual Basic」を開いてください。
※Ctrl + F11でも可能

下記の画像のように、出てきたウィンドウの左側にあるブックの一覧から、対象のブックを右クリックし、挿入の中のユーザーフォームをクリックしてください。
UserForm
ここまで終わると下記画像のように2つのウィンドウが出てきてると思います。
UserForm
この2つのウィンドウのうち、右にあるウィンドウの中にあるウィンドウがユーザーフォーム本体になり、左にあるウィンドウがユーザーフォームへリストボックスやコマンドボタンを作成するツールになります。

では実際に左のウィンドウを使って、リストボックスを自分の好きなサイズで作成してみてください。
そして、そのユーザーフォームを表示させるのですが、今までのマクロの様に「開発タブ」の中の「マクロ」を見てみても何もないと思います。

ではユーザーフォームを実行する際には何が必要になるかというと、ユーザーフォーム単体ではなく、今までの様に標準モジュールやワークシートモジュール等を使って、呼び出す必要があるのです。

ユーザーフォーム実行用のコード

では実際にユーザーフォームを呼び出す為の標準モジュールを作成してみましょう。
Sub Sample()
    UserForm1.Show
End Sub
これだけです。笑
このUserForm1.Showだけでユーザーフォームは呼び出せます。

「UserForm1」の部分は、自分が作成しているユーザーフォームの名前を入れ、「.Show」で呼び出します。

では上記のコードを標準モジュールへ記載し、Sampleというマクロを実行してみてください。
そうすると自分で作ったユーザーフォームが表示されましたよね?
ここにリストボックスの他にもコマンドボタンやテキストボックス、コンボボックスなどを作成し、そのユーザーフォームから情報を取り出すことが出来るのです。

最後に

この様にユーザーフォームを自分で作成できるようになると、「指定した値が入ったセルの一覧を作成し、ユーザーフォームのリストボックスから取り出す」「サイト一覧をリストボックスで表示し、選んだサイトをIEで開く」等の制御も出来るようになるのです。
次回はUserForm.xlsmのコードを解説していきます。