VBAのユーザーフォームの作り方・マスターするコツを徹底解説!


VBAのユーザーフォームの具体的な作り方が知りたいな・・・
作り方だけでなく、作り方を覚えるコツもあると嬉しいな・・・

VBAの基礎がある程度できるようになると、画面を使ったツールを作りたいと思う人が多いです。ちょっとしたツールであればシートにボタンを付けるだけでも作れますが、アプリとなると画面がないと厳しいですよね。ただ、具体的な画面の作り方や、作り方を覚えるコツがわからず苦戦してしまう人は多いです。

こんにちは!フリーランスエンジニア兼テックライターのワキザカです。

この記事では、VBAでユーザーフォームを使った画面の作り方について詳しく解説します!

また、最後にユーザーフォームの作り方を覚えるためのおすすめ学習方法についても紹介しているので、ぜひ最後までみてくださいね!

この記事はこんな人のために書きました。

  • VBAでユーザーフォームを使った画面を作れるようになりたい人
  • VBAのユーザーフォームの作り方を覚えるコツを知りたい人

目次

VBAのユーザーフォームの作り方

まず、VBAでユーザーフォームを作る方法について解説します。

ユーザーフォームを作る流れは、次のとおりです。


■ユーザーフォームを作る流れ
1. 空のユーザーフォームを作る
2. 画面の要素を追加する
3. プロパティを変更して位置やサイズを調整
4. 画面起動時・ボタンクリック時の処理を作る

1からそれぞれ解説しますね。

1. VBEを開き、挿入→ユーザーフォームを選択する

ユーザーフォームの挿入方法

ユーザーフォームを挿入すると、次のように空のユーザーフォームが作成されます。


ユーザーフォーム挿入直後の画面

2. 画面の要素を追加する
次に、画面に要素を追加していきます。

画面の要素は、「ツールボックス」から選び、画面上でサイズを指定して追加します。今回は、ラベル、テキストボックス、ボタンを追加してみましょう。


ラベル追加の例


ラベルを追加後の画面


テキストボックス追加の例


テキストボックス追加後の画面


ボタン追加の例


ボタン追加後の画面

3. プロパティを変更して位置やサイズを調整
画面の要素の追加が終わったら、プロパティを変更して表示目・位置・サイズを調整していきます。

まず、表示タブ→プロパティウィンドウを選択して、プロパティを表示します。


プロパティウィンドウの表示方法

次に、それぞれの要素をクリックしてからプロパティを変更していきます。見た目を整えるために、最低限以下を変更しましょう。


■ユーザーフォームで最低限変更が必要なプロパティ

  • Caption:表示名を変更します。ラベルの場合は必須です。
  • Font:フォントサイズやフォント名を変更できます。

今回は、以下のように変更しました。

■変更内容

  • 全体のフォント名:Meiryo UI
  • ラベル・テキストボックスのフォントサイズ:14px
  • ボタンのフォントサイズ:26px

■変更したときの値サンプル

Captionの変更例(ラベル)


フォントの変更内容 (ラベル・テキストボックス)

4. ボタンクリック時の処理を作る
最後に、ボタンクリックしたときの処理を作っていきます。

ユーザーフォームのボタンをダブルクリックすると、つぎのようなマクロが自動生成されます。


ボタンをダブルクリック

自動生成されたコード:

Private Sub CommandButton1_Click()

End Sub

「プロパティに表示されているオブジェクト名_Click」の名前でマクロが自動で作られるので、オブジェクト名を事前に「btnRegist」のように登録ボタンであることがわかるようにしておくと、次のようなマクロが自動で作られます。

オブジェクト名をbtnRegistにしたときに自動生成されるマクロ:

Private Sub btnRegist_Click()

End Sub

この中に、簡単な処理を書いてきましょう。

今回は、メッセージを表示する処理を書いてみます。

サンプルコード:

Private Sub btnRegist_Click()
    MsgBox "ボタンクリック成功"
End Sub

ここまでできたら、画面を実行してみましょう。実行すると、次のような画面が表示されます。


実行した画面

ボタンをクリックすると、次のようにメッセージが表示されます。


ボタンクリック後のメッセージ

これで、画面を作ってボタンクリック処理を作ることができました。

さらに詳しくユーザーフォームの作り方を知りたい方は、以下で詳しく解説しています。テキストボックスに入れた値を使う方法、作った画面を別の処理から起動する方法なども解説しているので、気になる方は以下を見てみてくださいね!

ユーザーフォームの作り方を深く学ぶ方法

次に、ユーザーフォームの作り方を深く学ぶ方法について解説します。

ちょっとした画面であれば、ここまでの使い方 + 紹介した記事を読めば理解できるかもしれません。ただ、深く使い方を覚えるためには、ツールボックスから画面に追加するコントロールの使い方を1つずつ覚えていくことがおすすめです!

追加方法、VBAのコードから値を取得する方法、具体的な使い方などそれぞれ以下で詳しく解説しています。ぜひ、1つずつ記事を読んで画面を作ってみてください!

■各コントロールの使い方

アプリ開発を通してユーザーフォームを学ぶ方法

ここまで、ユーザーフォームの作り方、深く学ぶ方法について解説しました。

ただ、基礎の使い方を覚えるだけでは、活用方法がイメージできない方も多いです。そのため、アプリ開発を通してユーザーフォームの使い方を覚えることがおすすめです!

クイズアプリを作りながらユーザーフォームの使い方、ユーザーフォームを使ったアプリ開発方法を学べる記事を用意しました。


クイズアプリの画面例

ぜひ、記事を読みながら自分でユーザーフォームを作ってみてください。アプリ開発に必要な処理の作り方も覚えることができますよ!

まとめ

今回は、VBAでユーザーフォームを使った画面の作り方について解説しました。

基礎的な作り方をまずは覚えて、各コントロールの使い方を深く学んでいくのが最初のステップです。

慣れてきたら、最後に紹介したクイズアプリに挑戦してみることがおすすめです!

ぜひ、画面を使ったアプリ開発に挑戦してみてくださいね!

この記事を書いた人

北海道出身の30歳で、フリーランスエンジニア兼テックライターとして活動中。新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。

Webアプリ、業務アプリ開発において、要件定義 ~ 運用保守まで様々な経験あり。また3歳の娘がいる1児のパパで、日々娘との時間を確保するために仕事を頑張っています!
侍エンジニアでは、【誰でもわかるレベルのわかりやすさ】を意識して、記事を執筆中。

目次