HOME > エクセルVBA >ユーザーフォームの利用

ユーザーフォームを利用しよう

 VBAのプログラムも色々作りなれてくると繰り返し処理や分岐処理だけでなく、ユーザーに何らかの情報を求めるようなプログラムも作成するようになります。

 まず初めにメッセージボックスで「はい」「いいえ」の選択をしたり、Input関数などでデータを入力してもらえるようなプログラムを作成することでしょう。

 しかし、メッセージボックスなら限られた選択肢しか選ぶことができません。Input関数も1つの内容しか入力できません。

 そんなときに便利なのがユーザーフォームです。テキストボックスやコマンドボタンなど複数のActiveXコントロールを利用することが出来ます。よって一度にユーザーに沢山の情報を入力してもらうことが出来ます。

ユーザーフォーム  ユーザーフォームを自作することが出来ると同時に多くの情報を入力することが出来ます。

 上記の入力フォームは仕入台帳のフォームを作成したときのユーザーフォームです。

 エクセルに直接データを入力するより、上記のような入力フォームがあるとすばやくデータを入力することが出来ます。

 単純にデータを入力するだけならエクセルのデータフォームを利用すればよいのですが、ユーザーフォームは色々と便利な機能をつけることが出来ます。

DTPicker コントロール

 APIを利用して「 DTPicker コントロール」を搭載したフォームになっています。
APIを利用しているのでちょっとめんどくさいですが、これを搭載することによって日付のデータ入力が簡単になります。

Tips06-3B: API で DTPicker コントロールを利用する ( Ver 3.3 )

「アドインボックス」さんのホームページに乗っていたので利用させていただきました。

自分で作成するのも大切だが、有志が作ったプログラムを利用したら便利なフォームが簡単に作れますぞ。
コンボボックスのリスト

仕入先のコンボボックスには業者名のリストが出てきます。

 手動で入力していると半角、全角の間違いや株式会社や(株)など、人によって記述が異なり、後々データに支障が出てきます。

 リスト形式で統一しているとそのようなデータの不具合を防ぐことが出来ます。

 もちろん設定を変更することにより、業者名を増やすことも出来ます。
コンボボックス、ワークシート関数の利用  商品名のコンボボックスは仕入先の業者によって該当する商品だけリスト表示するように設定しています。

 また、商品名を選択したら単価が自動で入力できます。(ワークシート関数のVlookup関数を利用)

 業者によって単価が違う場合があるのでその場合は直接入力も出来ます。

 慣れてくるとユーザーフォームはだいぶ工夫することが出来るのでルーチンワークを大幅に減らすことも可能です。

サンプルファイル

 今回紹介したユーザーフォームを利用した仕入台帳を公開します。

 マクロにパスワードの設定をしていので参考にしてください。

06_excel-VBA_21(siire).zip

サンプルファイル(使い方)

 仕入台帳はデータの入力、データの出力(項目を選択出来ます。)データの設定の3つから成り立っています。データ入力、データの設定がそのまま利用できたらあとは出力フォームを新規作成することによりカスタマイズすることが出来ます。

メニュー画面

 エクセルファイルを起動すると下記の画面が立ち上がります。「仕入台帳データ入力」を押すと台帳データ入力画面に切り替わり、データ入力が可能になります。「仕入一覧」を押すとデータから出力したい項目を集計し、印刷プレビュー画面まですぐに用意できます。

 「基本設定」を押すと、仕入業者や品名を設定することができます。

仕入台帳

データ入力

 入力フォームからデータを入力することが出来ます。カード型のフォームなので、簡単にデータを入力することができます。また、データの修正も簡単にすることができます。

データ入力フォーム

データの出力

 仕入一覧のボタンを押すと、仕入一覧フォームが立ちあがり、必要なデータだけ出力することが出来ます。項目をすべて空白にしているとすべてのデータを選択したことになります。業者のみ、また、製品のみを選択すると該当するデータだけ出力することができます。

データ出力フォーム

データ出力プレビュー

 印刷プレビュー画面です。必要なデータをすばやく出力することが出来ます。

基本設定

 基本設定を追加変更することが出来ます。仕入先業者、商品名、単価、担当者のマスタを登録・変更することが出来ます。仕入先業者は100社設定することができ、それぞれに100個の商品を設定することができます。

 A列の仕入先業者欄にデータをにゅうりょくして、設定更新ボタンを押すと、セルH3から左に向けて仕入先業者が入力されます。それぞれの業者の商品をセルH4以下に入力して、最後にもう一度設定更新ボタンを押してください。

基本設定

VBAでワークシート関数の利用  エクセル職人  ユーザーフォームの追加とコントロールの配置

▲TOPへ移動