【エクセルVBA】ユーザーフォームを作ってみよう!VBEでフォームを挿入する方法


ユーザーフォーム,eyecatch

皆様こんにちは、ノグチです。

エクセルでツールを作っていると、入力がし易かったり、特定の項目以外触れないような構成であるといった、専用の画面が欲しくなること、ありませんか?

エクセルにもユーザーフォームという、そんな願いを叶えてくれる機能があります。

「なんだか難しそう…」と思われる方もおられるかもしれませんね。

今回からはこのユーザーフォームを作って、動かしてみるまでを連載形式で順を追ってご紹介していきますので、一緒に作ってみませんか?

初回の本稿では、エクセルでのユーザーフォーム作成の第一歩、ユーザーフォームの挿入と基本的な設定や操作方法をご紹介します。

ユーザーフォームを使うことで得られるメリット

ユーザーフォームは、フォーム上にテキストボックスやチェックボックス、コンボボックスといった項目を用いて、ユーザーにとって使い勝手の良い画面を作ることができます。

各コントロールができることや、VBAでどう操作できるのか?は理解する必要がありますが、使いこなせば、作業効率を大幅にアップさせるような画面を作ることも夢ではありません。

ユーザーフォームを使うことで、例えばこんなイイコトがあります。

ユーザーとって分り易い画面にできる

まず、ユーザーフォームでユーザーにとって分かりやすい画面を作ることができます。

ユーザーが分かりやすい言葉で項目を作ることができ、入力しやすい順序で項目を並べられるのですから、入力作業のストレスはかなり軽減しますよね。

入力作業効率を向上できる

ユーザーフォームは、各項目間のタブ順序(カーソルが当たる順番)を設定したり、項目の値が変更された時や、エンターキーが押された時などのイベントに、VBAで任意の処理をセットすることもできます。

項目AとBが入力されたら、項目Cには自動的にマスタから項目AとBに対応する値を持ってきて表示させる…といったこともできるわけです。

つまり、入力が楽かつ入力作業効率をアップさせられます

「うっかり」を軽減してくれる

ワークシート上でも関数を使えば入力作業は効率化できるでしょう。

しかしワークシートは、関数が入力されているセルを誤って消してしまったり、ワークシートを消してしまったりというリスクがあります。

ユーザーフォームは、フォーム自体を消したりしない限り、ユーザーがフォームにセットされた処理を消すことはできませんので、ワークシートでの入力作業にありがちな「うっかり」を大幅に減らしてくれます

実際にユーザーフォームでの画面を使えば、上記に挙げた以外のメリットも感じられるかもしれませんよ。

ユーザーフォームを作成する

VBEでユーザーフォームを挿入する

ユーザーフォームが何となく良さ気なものであることを知って頂いたところで、早速ユーザーフォームを作っていきましょう。

ユーザーフォームは、VBEで作っていきます。

VBEを開いて、メニューの「挿入」をクリックするか、プロジェクトエクスプローラー上で右クリック>「挿入」をクリックします。

ユーザーフォーム,挿入

表示されるメニューの中から、「ユーザーフォーム」をクリックします。

すると、VBEの画面上に「UserForm1」と書かれた灰色の範囲が出現しますね。

これがユーザーフォームです。

ユーザーフォーム,初期

プロパティでフォームをカスタマイズする

新たに挿入したユーザーフォームを、プロパティシートで更新していきましょう。

ユーザーフォームのプロパティシートは、プロジェクトエクスプローラーに表示されているユーザーフォーム名をクリックするか、VBEの画面上に表示されているユーザーフォームをクリックすることで、表示されますよ。

プロパティシート,表示

フォームに名前を付ける

上で挿入したユーザーフォームには、「UserForm1」のように、自動的に名前が付けられています。

もちろんこのまま使用することができますが、後々VBAで操作するときなどの分り易さを考慮して、判別し易い名前に変えておくとよいでしょう。

ユーザーフォームの名前は、プロパティシートの「(オブジェクト名)」で変更することができますよ。

ユーザーフォーム,オブジェクト名

今回は、「MyForm」に変えておきます。

フォームのタイトルを変更する

次は、ユーザーフォームに表示されているタイトルを変えてみましょう。

タイトルは、プロパティシートの「Caption」で変更します。

ユーザーフォーム,プロパティ,キャプション

今回は、「フォームタイトル123」に変えておくことにします。

プロパティシートの「Caption」の値を変えると、画面上に表示されているユーザーフォームのタイトルも変更されますね。

ユーザーフォーム,キャプション,プロパティ

フォームの背景を変更する

お次は、フォーム全体の背景色を変えてみましょう。

背景色は、プロパティシートの「BackColor」で変更できます。

ユーザーフォーム,背景,プロパティ

値にカラーコードを入力するか、カラーパレットから任意の色を指定することができますよ。

ユーザーフォーム,プロパティ,カラーパレット

 

ユーザーフォームで複数画面を作りたい場合などは、背景色を変えておくと、どの画面なのかを判別しやすくなりますので、オススメです。

フォームのサイズを変更する

ユーザーフォーム全体の大きさも変えておきましょう。

初期値は180×240の大きさになっています。

フォームの大きさを変えるには、画面上のユーザーフォームを囲っている点線上にある、四角をドラッグするか、

ユーザーフォーム,プロパティ,大きさ

プロパティシートのHeight」(高さ)、「Width」(幅)の値を変更します。

プロパティシート,大きさ

ここで設定したサイズがユーザーフォームで作成する画面の大きさになるので、フォーム上に加えたい項目の数や幅などを考慮して大きさを決めましょう

大きすぎても小さすぎても使いにくかったり、画面が見難いということになってしまうかもしれませんからね。

プロパティシートが表示されない!

ユーザーフォームをクリックしてもプロパティシートが表示されない場合は、プロパティウインドウが非表示になっているかもしれません。

VBEのメニューにある「表示」から「プロパティウインドウ」をクリックすれば、プロパティシートが表示されます。

ユーザーフォーム,プロパティウインドウ

最後に

今回は、エクセルのユーザーフォームを作成する第一歩として、ユーザーフォームをVBEに挿入する方法と、基本的なプロパティをご紹介しました

ワークシートでも入力できるような作業であっても、ユーザーフォームなら入力項目のカーソル移動順序などもカスタムできるので、より入力作業が楽になりますよ。

次回は、今回作成したフォームをVBAを使って開いていきますよ。

【エクセルVBA】Showメソッドでユーザーフォームをコマンドボタンから開いてみよう!
エクセルの便利機能、ユーザーフォームの作り方と使い方を、連載記事でご紹介しています。今回は、ユーザーフォームにラベルやテキストボックスといったコントロールを追加する方法と、作成したユーザーフォームをワークシートから呼び出す方法をご紹介しています。

それでは、最後までお読みいただきありがとうございました!

  投稿者プロフィール

ノグチフリーランスPG・SE
元製造子会社SE。
業務システム保守・導入両方やった経験をお伝えすることで、少しでもシステムや手作業に悩まされる人が減ればいいなぁと日々夢見ております。

タイトルとURLをコピーしました