【会員アンケートご協力のお願い】抽選で計5名様に役立つ書籍をプレゼント!

HOME > 即効テクニック > Excel VBA > ユーザーフォーム関連のテクニック > ユーザーフォーム入門 - 住所入力フォームを作成する(1) 〜 はじめに

ユーザーフォーム入門 - 住所入力フォームを作成する(1) 〜 はじめに|Excel VBA

ユーザーフォーム関連のテクニック

ユーザーフォーム入門 - 住所入力フォームを作成する(1) 〜 はじめに

(Excel 2000/2002/2003/2007/2010/2013/2016)

Excelでは、アプリケーションの入力インターフェースとしてユーザーフォームを利用できます。
ユーザーフォームには、ボタンや文字入力用のテキストボックス、プルダウンメニューからユーザーに選択させるコンボボックスなど、コントロールと呼ばれる入力支援機能が用意されています。

これらのコントロールの多くはワークシート上に貼り付けることでも使用できますが、アプリケーションとしての体裁をより本格的なものとしたい、アプリケーション作成者の意図しないユーザー操作を極力防止したいという場合には、ユーザーフォームを使うことである程度問題の解決が可能になります。

ここでは、次のような住所入力フォームの作成を通して、ユーザーフォームやテキストボックスの簡単な使い方をご紹介します。

■ユーザーフォームの作成

Excelのユーザーフォームを使用してアプリケーションを作成するには、次のようにします。

  1. [Alt]+[F11]キーを押して、VBAの開発環境、Visual Basic Editor(VBE)を起動する
  2. 上記 1 で表示されたVBEで、[挿入]メニュー→[ユーザーフォーム]を選択する

この操作により、ボタンも何もない状態のユーザーフォームがVBEの中に表示されます。

■VBAの開発環境(VBE)

VBEのプロジェクエクスプローラ内には、「VBAProject(ブック名)」を親として、ツリー状にワークシートやブックのアイコンが並んでいます。これらと並んでユーザーフォームのアイコンがあることを確認できます。続けて、次の操作を行ってください。
プロジェクトエクスプローラが表示されていない場合は、VBEの[表示]メニューから表示します。

  1. プロジェクトエクスプローラでユーザーフォームのアイコンを右クリックし、表示されるショートカットメニューから[コードの表示]を選択する

    ユーザーフォームの動作を制御するためのフォームモジュールが、コードウィンドウに表示されます。このフォームモジュールにさまざまなコードを記述します。

  2. [表示]メニュー→[プロパティウィンドウ]を選択し、プロパティウィンドウを表示する

    プロパティウィンドウでは、フォームやフォーム上に配置したコントロールの書式など、さまざまなプロパティを設定します。プロパティはVBAのコードからも変更できますが、プロパティウィンドウではプロパティの初期値を設定します。
    ウィンドウの左側に表示されているのがプロパティの名称、右側がその値です。
    ほとんどのプロパティには初期値が設定されています。

■プロパティの変更

プロパティウィンドウを使ってプロパティを設定してみましょう。
次のように操作してください。

  1. プロパティウィンドウ上部のプルダウンメニューから[UserForm1]を選択する
  2. [全体]タブの一番上にある[(オブジェクト名)]をダブルクリックし、右側の値を「myForm」に変更する

    プロジェクトエクスプローラのユーザーフォームアイコンの右側に表示されたオブジェクト名が「myForm」に変更されていることを確認してください。

    この他にも、VBEにはローカルウィンドウ、イミディエイトウィンドウ、ウォッチウィンドウなどのデバッグツールがあります。これらはモジュールに記述したVBAコードの実行テストを行う際などに使用します。

■フォームの削除

不要なユーザーフォームを削除するには次のようにします。

  1. プロジェクトエクスプローラから削除したいフォームを選択する
    (ここでは、[myForm]を選択してください)
  2. 右クリックして表示されるショートカットメニューから[myFormの開放]を選択する
  3. 「削除する前にmyFormをエクスポートしますか?」のメッセージが表示されるので[いいえ]を選択する

[キャンセル]を選択すると削除されません。
このあと、[myForm]フォームと使って住所入力フォームを作成していくので、ここでは[キャンセル]を選択してください。

では、次回から[myForm]フォームを使って住所入力フォームを作成していきましょう。