Excel/VBA

TOP

ユーザーフォーム編

目次

ユーザーフォームとは

ユーザーフォームとは、ユーザーに直接入力や操作を行ってもらえるフォームを作成し、そのフォームをエクセル上で呼び出すことができるフォームのことです。

下記の画像のように、「ユーザーフォーム呼び出し」というボタンをクリックすると、商品名などを入力できるフォームが呼び出せたりします。

ユーザーフォームの説明画像です

ユーザーフォームを使用する目的

ユーザーフォームを使用すると、ユーザーが入力する箇所や操作をする箇所が直感で分かりやすいフォームが作成できるため、複数人で使用するツールなどを作成する場合に非常に有効です。

直接セルに入力をしてもらう方法もありますが、複数人で同じ作業をしていると入力する箇所の書式が崩れたり、関数などを使用している場合は数式がエラーになったりなど、様々なトラブルが発生してしまいます。

その点、ユーザーフォームを使用すると、入力欄から数式まで全てのプログラムをユーザーフォームに組み込めることが出来るため、ツール運用後のトラブルが比較的少なくなります。

更に、ユーザーフォームを使用すると、簡単な業務系システムを作成することも出来るため、開発の幅が大きく広がります。

ユーザーフォームの作成方法

ここからはユーザーフォームの作成方法を説明していきます。

まずは、VBE(VisualBasicEditor)を開き、「VBAProject」の上で右クリックをし、「挿入」⇒「ユーザーフォーム」の順番でクリックします。

ユーザーフォームの説明画像です

ユーザーフォームを追加すると、下記のようなフォームが作成されます。これがユーザーフォームです。

ユーザーフォームの説明画像です

ユーザーフォームの大きさは、右下の■を動かすことによって変更できます。

ユーザーフォームの説明画像です

次に、ツールボックスからコントロールを追加していきます。ツールボックスが表示されていない方は、左上の表示タブから「ツールボックス」をクリックしてください。

コントロールとは、ユーザーフォーム上で使用するテキストボックスやボタンのことを言います。

今回は、テキストボックスとボタンのみを配置していきます。追加するには下記のようにツールボックスにある、テキストボックスとボタンをドラッグ&ドロップで配置していきます。

ユーザーフォームの説明画像です

次に、追加したボタンはユーザーフォームを閉じる処理を入れたいのでボタンの表示を「閉じる」と変更しておきます。

追加したボタンを選択し、左下にあるプロパティウィンドウのCaptionの欄を「CommandButton1」から「閉じる」に変更します。

ユーザーフォームの説明画像です

次に、閉じるボタンにユーザーフォームを閉じる処理を入れていきます。作成した閉じるボタンをダブルクリックすると「Private Sub CommandButton1_Click()」というプロシージャが作成されます。

ユーザーフォームの説明画像です

作成されたプロシージャ内に「Unload Me」と記述します。意味は、ユーザーフォームを閉じるという意味です。

ユーザーフォームの説明画像です

記述をし終えたら、ユーザーフォームの画面に戻ります。ユーザーフォームの画面に戻るには「UserForm1」の箇所をダブルクリックします。

ユーザーフォームの説明画像です

次にユーザーフォームの名前を変更します。名前を変更するには、プロパティウィンドウのオブジェクト名を「UserForm1」から「FORM_TEST」とします。
今回は、「FORM_TEST」としますが実際の開発では、適切な名前を命名するようにしてください。

ユーザーフォームの説明画像です

次に標準モジュールを作成します。「VBAProject」の上で右クリックをし、「挿入」⇒「標準モジュール」の順番でクリックします。

ユーザーフォームの説明画像です

標準モジュールに、「ユーザーフォームを開く」というプロシージャを追加し、「FORM_TEST.Show」と記述してください。
意味としては、「FROM_TEST」という名前のユーザーフォームを開くという意味です。

ユーザーフォームの説明画像です

次に、ユーザーフォームを表示させるためのボタンを作成します。開発タブの「挿入」からボタンを配置し、作成した「ユーザーフォームを開く」というマクロをボタンに登録してください。

ユーザーフォームの説明画像です

追加したボタンをクリックすると、作成したユーザーフォームが表示されます。閉じるボタンにユーザーフォームを閉じる処理を入れているため、閉じるボタンをクリックするとユーザーフォームを閉じることができます。

ユーザーフォームの説明画像です

以上でユーザーフォームの作成は完了です。


各コントロールの使い方

ユーザーフォームのコントロールは、上記で紹介したボタンとテキストボックス以外にも、様々なコントロールが存在します。以降のページから各コントロール毎に解説していきますので是非ご覧ください。