トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! >第14話「ユーザーフォームってなに?」

やってみよう!Excel VBAで業務改善!|VBAとの出会い編

ユーザーフォームを作ってみよう

「ユーザーフォーム?」

星くんが、キョトンとした顔で聞き返します。

「うん、Excelの場合、ワークシートがそのまま入力フォームの役割をしてるんだけど…
本格的な業務システムの開発にはワークシートからの入力だけでは厳しいものがある。
そんなときは、ユーザーフォームを使用して、入力フォームをデザインする必要があるんだ。」

そういうと八木くんは、VBEで何やら操作を始めました。

「VBEのプロジェクトエクスプローラのどこでもいいから右クリックするよ。
するとショートカットメニューが表示されるから、その中の[挿入]→[ユーザーフォーム]をクリックする」

「あ、なんかでた」 「これがユーザーフォームだよ。
この中にボタンやテキストボックスなどのコントロールを自由に配置して、利用することができる。
ちょっと試しに作ってみるか…」

そういいながら八木くんは、ユーザーフォームにテキストボックスとコマンドボタンのコントロールを追加しました。

「コントロールの追加は、[ツールボックス]の中にあるアイコンをクリックしてから、ユーザーフォーム上のコントロールを追加したい場所でドラッグするんだ。
そうすると、ドラッグした位置にコントロールが配置される。
ちょうど、ワークシートでオートシェイプの図形を挿入するのと同じ操作だよ。
今は試しに、テキストボックスとコマンドボタンを配置してみたよ」

「なんかInputBoxのダイアログに似ているね」

「うん。InputBox関数が表示するダイアログボックスはテキストボックスが1つと、
[OK][キャンセル]の2つのボタンが配置されてるね。
でも、ユーザーフォームならテキストボックスをいくつも配置したり、チェックボックスやコンボボックスなどのコントロールを追加することもできる。
ユーザーに便利に操作してもらうためのフォームをデザインすることができるんだ」

星くんが、うーんと腕を組みながらたずねます。

「例えば、どんなデザインだと操作がしやすくなるんだい?」 「そうだな…例えば、"はい"と"いいえ"の2つしかユーザーに入力してもらう必要がないとき、ワークシートならどうする?」 「それは…えっと、データの入力規則のリストを使うかな…」 「なるほど、あらかじめ"はい"と"いいえ"のリストを作っておいてデータの入力規則の元の値に指定するんだね。
いい方法だな。でも、他の値をコピーして貼り付けられてしまったらどうするんだい?」

星くんは、ウッと返答につまりました。

「…そ、それは…困るな…」

シーズン1 「VBAとの出会い」編: 各エピソードへのリンク
一覧にもどる