目次
ユーザーフォームとは
ユーザーフォームとは、ユーザーに直接入力や操作を行ってもらえるフォームを作成し、そのフォームをエクセル上で呼び出すことができるフォームのことです。
下記の画像のように、「ユーザーフォーム呼び出し」というボタンをクリックすると、商品名などを入力できるフォームが呼び出せたりします。
ユーザーフォームを使用する目的
ユーザーフォームを使用すると、ユーザーが入力する箇所や操作をする箇所が直感で分かりやすいフォームが作成できるため、複数人で使用するツールなどを作成する場合に非常に有効です。
直接セルに入力をしてもらう方法もありますが、複数人で同じ作業をしていると入力する箇所の書式が崩れたり、関数などを使用している場合は数式がエラーになったりなど、様々なトラブルが発生してしまいます。
その点、ユーザーフォームを使用すると、入力欄から数式まで全てのプログラムをユーザーフォームに組み込めることが出来るため、ツール運用後のトラブルが比較的少なくなります。
更に、ユーザーフォームを使用すると、簡単な業務系システムを作成することも出来るため、開発の幅が大きく広がります。
ユーザーフォームの作成方法
ここからはユーザーフォームの作成方法を説明していきます。
まずは、VBE(VisualBasicEditor)を開き、「VBAProject」の上で右クリックをし、「挿入」⇒「ユーザーフォーム」の順番でクリックします。
ユーザーフォームを追加すると、下記のようなフォームが作成されます。これがユーザーフォームです。
ユーザーフォームの大きさは、右下の■を動かすことによって変更できます。
次に、ツールボックスからコントロールを追加していきます。ツールボックスが表示されていない方は、左上の表示タブから「ツールボックス」をクリックしてください。
コントロールとは、ユーザーフォーム上で使用するテキストボックスやボタンのことを言います。
今回は、テキストボックスとボタンのみを配置していきます。追加するには下記のようにツールボックスにある、テキストボックスとボタンをドラッグ&ドロップで配置していきます。
次に、追加したボタンはユーザーフォームを閉じる処理を入れたいのでボタンの表示を「閉じる」と変更しておきます。
追加したボタンを選択し、左下にあるプロパティウィンドウのCaptionの欄を「CommandButton1」から「閉じる」に変更します。
次に、閉じるボタンにユーザーフォームを閉じる処理を入れていきます。作成した閉じるボタンをダブルクリックすると「Private Sub CommandButton1_Click()」というプロシージャが作成されます。
作成されたプロシージャ内に「Unload Me」と記述します。意味は、ユーザーフォームを閉じるという意味です。
記述をし終えたら、ユーザーフォームの画面に戻ります。ユーザーフォームの画面に戻るには「UserForm1」の箇所をダブルクリックします。
次にユーザーフォームの名前を変更します。名前を変更するには、プロパティウィンドウのオブジェクト名を「UserForm1」から「FORM_TEST」とします。
今回は、「FORM_TEST」としますが実際の開発では、適切な名前を命名するようにしてください。
次に標準モジュールを作成します。「VBAProject」の上で右クリックをし、「挿入」⇒「標準モジュール」の順番でクリックします。
標準モジュールに、「ユーザーフォームを開く」というプロシージャを追加し、「FORM_TEST.Show」と記述してください。
意味としては、「FROM_TEST」という名前のユーザーフォームを開くという意味です。
次に、ユーザーフォームを表示させるためのボタンを作成します。開発タブの「挿入」からボタンを配置し、作成した「ユーザーフォームを開く」というマクロをボタンに登録してください。
追加したボタンをクリックすると、作成したユーザーフォームが表示されます。閉じるボタンにユーザーフォームを閉じる処理を入れているため、閉じるボタンをクリックするとユーザーフォームを閉じることができます。
以上でユーザーフォームの作成は完了です。
各コントロールの使い方
ユーザーフォームのコントロールは、上記で紹介したボタンとテキストボックス以外にも、様々なコントロールが存在します。以降のページから各コントロール毎に解説していきますので是非ご覧ください。