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. ボタンクリック時の処理を作る
最後に、ボタンクリックしたときの処理を作っていきます。

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


ボタンをダブルクリック

自動生成されたコード:

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

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

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

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

サンプルコード:

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


実行した画面

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


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

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

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

【VBA入門】ユーザーフォームの使い方(テキスト表示、カレンダー)
更新日 : 2019年4月22日

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

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

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

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

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

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

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

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

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


クイズアプリの画面例

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

VBAのクイズの作り方とは?考え方やチュートリアルも解説!
更新日 : 2019年4月19日

まとめ

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

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

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

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

Excel VBAを最短で習得したい方へ

元々ITリテラシーの高い方やプログラムの学び方がわかっている方であれば、この記事通りに進めていけば、Excel VBAを独学で習得することができるでしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「なかなかやり遂げられ無い、挫折してしまった」
「時間が足りない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決することができない」

このような悩みを抱えている方も少なく無いと思います。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、より深くExcel VBAについて学習することできます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方やカリキュラムを考えてみませんか?

Excel VBAならではの学習方法や、現役エンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta2_vba2

LINEで送る
Pocket

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説