■はじめに■
エクセル97、2000においては、アプリケーション作成の入力インターフェースとしてユーザフォームを作成することが可能です。ユーザフォームにはボタンや、文字入力用のテキストボックス、プルダウンメニューからユーザに値を選択してもらうためのコンボボックスなど、コントロールと呼ばれる入力支援機能が提供されています。これらのコントロールの多くはワークシート上に貼り付けることでも使用できますが、アプリケーションとしての体裁をより本格的なものとしたい、ユーザによるアプリケーション作成者の意図しない操作を極力防止したい、という場合などには、ユーザフォームを使うことである程度問題解決が可能です。
■ユーザフォームの配置■
ユーザフォームをエクセルブックによるアプリケーションに組み込むには次のようにします。
- エクセルのメニューから”ツール-マクロ-Visual Basic Editor”を選択します。
- 1で表示されたVBA開発環境、Visual Basic Editor(VBE)の メニューから、”挿入-ユーザーフォーム”を選択します。
2の操作により、ボタンも何もない状態のユーザーフォームがVBEの中に表示されます。
■VBA開発環境■
VBEのプロジェクエクスプローラ(表示されていなければ、”表示”メニューから表示させます)内に”VBAProject(ブック名.xls)”を親として、ツリー状にワークシートやエクセルブックのアイコンが並んでいます。これらと並列してユーザフォームのアイコンがあることを確認し、選択してから以下の操作を行ってください。
・ユーザフォームのアイコン上で右クリックして表示されるショートカットメニューから”コードの表示”を選択します。
ユーザフォームの動作を制御するためのコードウィンドウにフォームモジュールが表示されます。(このフォームモジュールにはさまざまなVBAコードを記述します。)
・”表示”メニューから”プロパティーウィンドウ”を選択します。
表示されたプロパティーウィンドウでは、フォームやフォーム上に配置したコントロールのプロパティー設定により書式設定や、初期値など、各種の設定を行います。
ウィドウの左側に表示されているのがプロパティー名称、右側がその値となります。
※ほとんどのプロパティーには初期値が設定されています。
(プロパティー変更のテスト)
a.プロパティーウィンドウ上部のプルダウンメニューから”UserForm1”を選択。
b.”全体”タブの一番目の項目、”(オブジェクト名)”をダブルクリックし、右側の値を”MyForm”と変更してください。
c.プロジェクトウィンドウのユーザフォームアイコン右側で、フォームのオブジェクト名が”MyForm”に変更されていることを確認してください。
※オブジェクト名の変更は”ユーザフォーム入門 - 住所入力フォームを作成する(2)”以降でも他の入力ボックスの名称変更などの際に行います。
※その他VBEには”ローカルウィンドウ、ウォッチウィンドウ、イミディエイトウィンドウなどがありますが、これらは”デバッグ”といって、モジュールに記述したVBAコードの実行テストを行う際などに用いるものです。
(参考:テクニック集)
デバッグ入門 − イミディエイトウィンドウその他
デバッグ入門 − ローカルウィンドウその他
■フォームの削除■
不必要なユーザフォームを削除するには次のようにします。
a.プロジェクトエクスプローラから”UserForm1”を選択。
※上記プロパティー変更テストでオブジェクト名を変更している場合には”MyForm”
b.右クリックにより表示されるショートカットメニューから”UserForm1の開放”を選択。
c.”削除する前にUserForm1をエクスポートしますか”のメッセージは、ここでは”いいえ”を選択します。