ほげーむわーく

宿題をゲームのように楽しむブログ

【VBA初心者必見】ユーザーフォームを作成する

f:id:takehito33711:20190118202055j:plain

VBAでユーザーフォームを作ってみましょう。
ユーザーフォームを扱えるようになるとVBAライフの幅が広がります。

ところでユーザーフォームってどんなものかというと、こんなやつです↓
f:id:takehito33711:20190117205846p:plain:w400

今回はユーザーフォームの作り方から各ツールでどんなことができるのか簡単に解説していきたいと思います。
それでは行ってみましょう!

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

ユーザーフォームはまず下図のように、「挿入」→「ユーザーフォーム」を選択してください。
[ねf:id:takehito33711:20190118211631p:plain:w300]

そうするとこんな画面と、
f:id:takehito33711:20190118211854p:plain:w300

こんなものが表示されてきます。
f:id:takehito33711:20190118202316p:plain:w300

このツールボックス(ToolBox)内から好きなものを選んでユーザーフォーム内にペタペタ貼っていくわけです。

ためしにテキストボックスを作っていきましょう。
まずツールボックスからテキストボックスを選択します。

f:id:takehito33711:20190118213514p:plain:w300

選択したらユーザーフォーム内でドラッグするとテキストボックスが出現します。
このまま移動や大きさ変更もできます。
f:id:takehito33711:20190118213814p:plain:w300

作り方はこんな感じでツールボックスからアイテムを選んでユーザーフォーム内に張り付けて調整していきます。

またテキストボックスを選択すると画面左下にこんなものが表示されています。
f:id:takehito33711:20190124201222p:plain:w300

この画面で位置の調整や背景色の設定等、色々な設定ができるようになります。
詳細の説明は別の機会にしようと思います。

次によく使うツールについてそれぞれ解説していきます。

ツールを使ってできること

ラベル(Label)

ラベルは項目のタイトル等に使います。

ラベルはツールボックスからf:id:takehito33711:20190124201116p:plainを選択します。
ユーザーフォームに貼り付けるとこんな感じになります。
f:id:takehito33711:20190124200953p:plain:w300

また、設定によって↓みたいにフォントを変えたり、背景色を変更できたりします。
f:id:takehito33711:20190124200836p:plain:w300

テキストボックス(TextBox)

テキストボックスはユーザーが文字を打ち込めるツールです。

テキストボックスはツールボックスからf:id:takehito33711:20190124201358p:plainを選択します。
ユーザーフォームに貼り付けるとこんな感じになります。
f:id:takehito33711:20190124201639p:plain:w300


実際の画面はこんな感じになります。
f:id:takehito33711:20190124201547p:plain:w300

コンボボックス(ComboBox)

コンボボックスはユーザーが項目をリストの中から選択できたり、テキストボックスのように直接打ち込めるツールです。

コンボボックスはツールボックスからf:id:takehito33711:20190124201824p:plainを選択します。
ユーザーフォームに貼り付けるとこんな感じになります。
f:id:takehito33711:20190124201735p:plain:w300


実際の画面はこんな感じです。
リストが出てきて選択ができます。
f:id:takehito33711:20190124202414p:plain:w300

リストボックス(ListBox)

リストボックスはユーザーがリストの中から項目を選択できるツールです。
コンボボックスと似たようなツールなのですが、
コンボボックスは直接入力できるテキストボックスを持ちますが、
リストボックスはテキストボックスを持っていません。
ただリストから選択できるだけです。

リストボックスはツールボックスからf:id:takehito33711:20190124202534p:plainを選択します。
ユーザーフォームに貼り付けるとこんな感じになります。
f:id:takehito33711:20190124202627p:plain:w300


実際の画面はこんな感じです。
ユーザーはリストから項目を選択できるようになります。
f:id:takehito33711:20190124202825p:plain:w300

チェックボックス(CheckBox)

チェックボックスはその名の通り、項目のチェックができるツールです。

チェックボックスツールボックスからf:id:takehito33711:20190124202940p:plainを選択します。
ユーザーフォームに貼り付けるとこんな感じになります。
f:id:takehito33711:20190124203055p:plain:w300


実際の画面はこんな感じです。
ユーザーは項目をチェックできるようになります。
f:id:takehito33711:20190124203207p:plain:w300

オプションボタン(OptionButton)

オプションボタンは項目の選択ができるツールです。

チェックボックスと異なるのは1つだけ選択できるという点です。
例えば性別を選択するときは「男性」か「女性」になりますよね?
両方を選択できたりとか、どちらでもないということはないはずです。
こういう時、チェックボックスはチェック数に制限がないので両方選べたりしますが、オプションボタンは1つだけ選択するような制限を持っています。

オプションボタンはツールボックスからf:id:takehito33711:20190124203316p:plainを選択します。
ユーザーフォームに貼り付けるとこんな感じになります。
f:id:takehito33711:20190124203413p:plain:w300

実際の画面はこんな感じです。
1つだけ選択できます。
f:id:takehito33711:20190124203451p:plain:w300f:id:takehito33711:20190125202820p:plain:w295

フレーム(Frame)

フレームは項目をグループ化できるツールです。
すっきりまとまった見た目ができます。

フレームはツールボックスからf:id:takehito33711:20190124203545p:plainを選択します。
ユーザーフォームに貼り付けるとこんな感じです。
f:id:takehito33711:20190124203657p:plain:w300

オプションボタンは1つのみ選択可能なので、例えば↓のようにOptionButton1とOptionButton4を同時に選択することはできませんが、
f:id:takehito33711:20190126002504p:plain:w300

フレームを使えば同時に選択することができるようになります。
f:id:takehito33711:20190124203905p:plain:w300

コマンドボタン(CommandButton)

コマンドボタンはボタンとしての機能を持ったツールです。
画面を閉じたり開いたりというような動作を行えます。

コマンドボタンはツールボックスからf:id:takehito33711:20190124204118p:plainを選択します。
ユーザーフォームに貼り付けるとこんな感じです。
f:id:takehito33711:20190124204132p:plain:w300

実際の画面がこれです。
f:id:takehito33711:20190126002949p:plain:w300

マルチページ(MultiPage)

マルチページはタブの機能を持ったツールです。
一つの画面で切り替えができるようになります。

マルチページはツールボックスからf:id:takehito33711:20190124204326p:plainを選択します。
ユーザーフォームに貼り付けるとこんな感じです。
もちろんタブの数を後で増やすこともできます。
f:id:takehito33711:20190124204338p:plain:w300

スピンボタン(spinButton)

スピンボタンは値を増やしたり減らしたりできるツールです。
テキストボックスと組み合わせて使うことが多いと思います。

スピンボタンはツールボックスからf:id:takehito33711:20190124204752p:plainを選択します。
ユーザーフォームに貼り付けるとこんな感じです。
f:id:takehito33711:20190124204805p:plain:w300

イメージ(Image)

イメージはユーザーフォームに好きな画像を貼り付けることができます。

イメージはツールボックスからf:id:takehito33711:20190124210410p:plainを選択します。

ユーザーフォームに貼り付けるとこんな感じです。
今年の干支っぽくしてみました。
f:id:takehito33711:20190124210316p:plain:w300

まとめ

今回はユーザーフォームの主要な機能を紹介しましたが、いかがでしたでしょうか。
今回の内容で色々なユーザーフォームが作れるようになるかと思います。
実際使用するときにはコーディングが必要になりますが、その内容については随時更新していきたいと思います。