「ユーザーフォーム?」
星くんが、キョトンとした顔で聞き返します。
「うん、Excelの場合、ワークシートがそのまま入力フォームの役割をしてるんだけど…
本格的な業務システムの開発にはワークシートからの入力だけでは厳しいものがある。
そんなときは、ユーザーフォームを使用して、入力フォームをデザインする必要があるんだ。」
そういうと八木くんは、VBEで何やら操作を始めました。
「VBEのプロジェクトエクスプローラのどこでもいいから右クリックするよ。
するとショートカットメニューが表示されるから、その中の[挿入]→[ユーザーフォーム]をクリックする」
「あ、なんかでた」
「これがユーザーフォームだよ。
この中にボタンやテキストボックスなどのコントロールを自由に配置して、利用することができる。
ちょっと試しに作ってみるか…」
そういいながら八木くんは、ユーザーフォームにテキストボックスとコマンドボタンのコントロールを追加しました。
「コントロールの追加は、[ツールボックス]の中にあるアイコンをクリックしてから、
ユーザーフォーム上のコントロールを追加したい場所でドラッグするんだ。
そうすると、ドラッグした位置にコントロールが配置される。
ちょうど、ワークシートでオートシェイプの図形を挿入するのと同じ操作だよ。
今は試しに、テキストボックスとコマンドボタンを配置してみたよ」
「なんかInputBoxのダイアログに似ているね」
「うん。InputBox関数が表示するダイアログボックスはテキストボックスが1つと、
[OK][キャンセル]の2つのボタンが配置されてるね。
でも、ユーザーフォームならテキストボックスをいくつも配置したり、
チェックボックスやコンボボックスなどのコントロールを追加することもできる。
ユーザーに便利に操作してもらうためのフォームをデザインすることができるんだ」
星くんが、うーんと腕を組みながらたずねます。
「例えば、どんなデザインだと操作がしやすくなるんだい?」
「そうだな…例えば、"はい"と"いいえ"の2つしかユーザーに入力してもらう必要がないとき、
ワークシートならどうする?」
「それは…えっと、データの入力規則のリストを使うかな…」
「なるほど、あらかじめ"はい"と"いいえ"のリストを作っておいて
データの入力規則の元の値に指定するんだね。
いい方法だな。でも、他の値をコピーして貼り付けられてしまったらどうするんだい?」
星くんは、ウッと返答につまりました。
「…そ、それは…困るな…」