VBAのユーザーフォームを使うと、Excelでシステムのような画面を表示することが可能です。本記事では、サンプルとして以下のようなウィンドウを作っていきます。
目次
VBAでユーザーフォームを表示する
まずは、プロジェクトにユーザーフォームを追加します。
UserForm1を追加する
【VBAProjectを右クリック】→ 【挿入】 → 【ユーザーフォーム】をクリックします。
すると、VBAProjectにフォーム/UserForm1が追加されて、以下のようにUserForm1という画面が表示されます。
そもそもこの画面なに?という方は、以下の記事でVBAを書き始める準備の方法をまとめているのでご覧ください。

ユーザーフォームを表示する
画面上部の【▶】を押してしてください。
すると、以下のようなユーザーフォームが表示されます。
今はユーザーフォームを追加しただけなのでまっさらなユーザーフォームが表示されていますが、ここにテキストボックスやボタンなどを追加することが可能です!
ユーザーフォームにコントロールを追加する
まっさらなユーザーフォームに、テキストボックスやボタンなどのコントロール追加していきましょう。
ツールボックスを表示
ユーザーフォームにコントロールを追加するために、まずはツールボックスを表示させます(初めから表示されている場合もあります)。
トップメニューの【表示】→【ツールボックス】をクリックすると、ツールボックスが表示されます。
ボタンを追加
①ツールボックスのコマンドボタンをクリックします。そのあとに、②ユーザーフォームの上でクリックすると、ボタンが追加されます。
ラベルとテキストボックスを追加
①ツールボックスのラベルをクリックします。そのあとに、②ユーザーフォームの上でクリックすると、ラベルが追加されます。同じことをテキストボックスでも繰り返します。
コントロールを置いただけですが、ここで画面上部の【▶】を押してみましょう。
コントロールが追加されたユーザーフォームが表示されましたね。しかし、まっさらではなくなったものの、このままでは使い物になりませんね。そこで、次の章で画面の見た目をよくしていきます。
コントロールの一覧を確認したい方は以下のサイトを参考にしてください。
参考 ツールボックスOfficeディベロッパーセンターユーザーフォームのプロパティを設定する
各コントロールにはプロパティが用意されており、プロパティを変更することでコントロールの大きさや表示される文字を変更することが可能です。
プロパティウィンドウ
プロパティの変更はプロパティウィンドウから行います。プロパティを変更したいコントロールをクリックして選択すると、プロパティウィンドウに表示されます。
例えば、下の図ではユーザーフォームをクリックしているので、プロパティウィンドウ(左側)にはユーザーフォームのプロパティが表示されています。
コントロールの大きさを変更(Height、Width)
コントロールの大きさを変更するプロパティはHeightとWidthになります。これらの値を変更することでコントロールの大きさを変えることができます。
その他、コントロールを選択し四角をドラッグアンドドロップすることでも大きさ(HeightとWidth)を変えることが可能です。
表示される文字を変更(Caption)
ウィンドウ上に表示される文字を変更するには、Captionプロパティを変更します。プロパティウィンドウでCaptionプロパティの右側のテキストをそのまま変更します。
本記事では、ユーザーフォーム、ラベル、コマンドボタンのCaptionを変更しています。
ユーザーフォームからマクロを呼び出す
ここまで作るとだいぶそれっぽいウィンドウになってきましたね。ただこれだけだと表示されるだけで何も処理を行ってくれません。
そこで最後に、ボタンを押したときにマクロが実行されるようにしていきます。
ボタンをダブルクリックしてイベントメソッドを追加
コマンドボタンにカーソルを合わせてダブルクリックしましょう。
すると、ソースコードが表示され、以下のようなソースコードが追加されます。
ここで追加されるメソッドはボタンをクリックしたときに実行されるソースコードになります。そのため、ボタンをクリックしたときに何か処理をしたい場合には、このメソッドの中に処理を書きます。
ボタンをクリックしたときの処理
せっかくテキストボックスを追加したので、テキストボックスに入力されている文字をメッセージボックスで表示してみます。以下のソースコードを、Private Sub CommandButton1_Click() と End Sub の間に書きます。
copy
MsgBox ("名前は" + TextBox1.Text + "です!")
このようにオブジェクト名 + “.“+ プロパティ名でオブジェクトに設定されている値を取得したり、変更したりすることが可能です。
書いた後の画面はこんな感じです。
ボタンを押してマクロを実行する
それでは、ボタンを押してマクロを実行してみましょう!
プロジェクトのUserForm1をダブルクリックして以下の画面にしたあとに、画面上部の【▶】を押してしてください。
ユーザーフォームが表示されたら、テキストボックスに名前を入力し、ボタンをクリックしてください。
メッセージボックスにメッセージが表示されたら完了です!
ユーザーフォームを学ぶのにおすすめな本
ユーザーフォームを作れるようになると、Excelで出来ることがぐっと広がります。この機会にぜひ覚えてみてください!
なお、もっとユーザーフォームについて学びたいという方は、以下の本がおすすめです。
VBAのユーザーフォームを使った内容に特化しており、本を読み進めることで売上管理システムを作れるようになります。