スライドショースライドショー

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

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


実行した画面

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


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

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

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

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

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

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

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

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

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

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

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

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

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


クイズアプリの画面例

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

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

まとめ

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

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

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

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

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

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

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

おすすめコンテンツ

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

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