目次:
- 新しいユーザーフォームを挿入する
- ユーザーフォームにコントロールを追加する
- コントロールのプロパティには、次のものがあります。
- VBAプロシージャでユーザーフォームのShowメソッドを使用してユーザーフォームを表示します。
- Sub ShowDialogBox()UserForm1。 Show '他のステートメントはここに移動できますEnd Sub
- CheckBox1のような文を書くことができます。Value = True
ビデオ: イベント/Excel VBAプログラミング基礎 (2010,2013,2016対応)【動学.tv】 2024
VBAで作成する各Excelダイアログボックスは、独自のUserFormオブジェクトに格納されます。ユーザーフォームごとに1つのダイアログボックスです。これらのユーザーフォームは、Visual Basic Editorで作成してアクセスします。
新しいユーザーフォームを挿入する
次の手順でUserFormオブジェクトを挿入します。
-
Alt + F11を押してVBEをアクティブにします。
-
[プロジェクト]ウィンドウでユーザーフォームを保持するワークブックを選択します。
-
挿入→ユーザフォームを選択します。
VBEは空のダイアログボックスを含む新しいUserFormオブジェクトを挿入します。
ここには、空のダイアログボックスであるユーザーフォームがあります。あなたの仕事は、それを受け入れることを選択した場合、このユーザーフォームにいくつかのコントロールを追加することです。
新しいUserFormオブジェクト。ユーザーフォームにコントロールを追加する
<! - 2 - >ユーザーフォームをアクティブにすると、VBEはツールボックスをフローティングウィンドウに表示します。ツールボックスのツールを使用して、ユーザーフォームにコントロールを追加します。何らかの理由で、ユーザーフォームをアクティブにしたときにツールボックスが表示されない場合は、[表示]→[ツールボックス]を選択します。
コントロールを追加するには、ツールボックスで目的のコントロールをクリックし、ダイアログボックスにドラッグしてコントロールを作成します。コントロールを追加したら、標準的な手法を使用してコントロールを移動したりサイズを変更したりできます。
<! - 3 - >様々なツールのリストとその機能を以下に示します。
Label | テキストを表示する |
---|---|
TextBox | ユーザーがテキストを入力できるようにする |
ComboBox | ドロップダウンリストを表示する |
ListBox < 項目のリストを表示する | CheckBox |
オン/オフまたははい/いいえなどのオプションを提供します。 | OptionButton |
ユーザーがいくつかのオプションの1つを選択できます。 | ToggleButton |
ユーザーがボタンをオンまたはオフに切り替えることを可能にする | フレーム
他のコントロールを含む |
CommandButton | クリック可能なボタン |
TabStrip | タブを表示する |
MultiPage | 他のオブジェクトのタブ付コンテナ |
ScrollBar | バーをドラッグして設定を有効にする |
SpinButton | ボタンを押して値を変更する |
画像 | イメージを保持する |
RefEdit | ユーザーが範囲を選択できるようにする |
ユーザーフォームコントロールのプロパティを変更する | コントロールがどのように見えるか、または動作するかを決定します。さらに、UserForm自体には、独自のプロパティセットがあります。適切な名前のプロパティウィンドウでこれらのプロパティを変更できます。これは、CommandButtonコントロールが選択されているときに、[プロパティ]ウィンドウを表示します。 |
プロパティウィンドウを使用して、ユーザーフォームコントロールのプロパティを変更します。 | F4キーを押すと[プロパティ]ウィンドウが表示され、このウィンドウに表示されるプロパティは選択した内容によって異なります。別のコントロールを選択すると、そのコントロールに適したプロパティにプロパティが変更されます。プロパティウィンドウを非表示にして、それを取り除くには、タイトルバーの閉じるボタンをクリックします。 F4を押すと、必要なときにいつでも戻ってきます。 |
コントロールのプロパティには、次のものがあります。
名前
幅高さ
値
-
キャプション
-
各コントロールには独自のプロパティセットがあります。プロパティウィンドウを使用してプロパティを変更するには、次の手順を実行します。
-
ユーザーフォームで正しいコントロールが選択されていることを確認します。
-
[プロパティ]ウィンドウが表示されていることを確認します。
-
プロパティウィンドウで、変更するプロパティをクリックします。
プロパティウィンドウの右側の部分を変更します。
-
ユーザーフォーム(UserFormのコントロールではない)を選択した場合は、プロパティウィンドウを使用してUserFormプロパティを調整できます。
-
UserForm Codeウィンドウの表示
-
すべてのUserFormオブジェクトには、ユーザーがダイアログボックスを操作するときに実行されるVBAコード(イベントハンドラプロシージャ)を保持するCodeモジュールがあります。コードモジュールを表示するには、F7キーを押します。 [コード]ウィンドウは、プロシージャを追加するまで空です。 Shift + F7を押してダイアログボックスに戻ります。
-
コードウィンドウとユーザーフォーム表示を切り替える別の方法は次のとおりです。プロジェクトウィンドウのタイトルバーでコードの表示とオブジェクトの表示ボタンを使用します。または、UserFormを右クリックし、「コードを表示」を選択します。コードを表示している場合は、「プロジェクト」ウィンドウで「ユーザーフォーム」の名前をダブルクリックして「ユーザーフォーム」に戻ります。
ユーザーフォームを表示する
VBAプロシージャでユーザーフォームのShowメソッドを使用してユーザーフォームを表示します。
ダイアログボックスを表示するマクロは、UserFormのコードウィンドウではなく、VBAモジュール内にある必要があります。
次の手順では、UserForm1というダイアログボックスが表示されます。
Sub ShowDialogBox()UserForm1。 Show '他のステートメントはここに移動できますEnd Sub
Excelがダイアログボックスを表示すると、ユーザーがダイアログボックスを閉じるまでShowDialogBoxマクロが停止します。その後、VBAはプロシージャ内の残りのステートメントを実行します。ほとんどの場合、この手順ではコードはもうありません。後で見るように、UserFormのコードウィンドウにイベントハンドラプロシージャを配置します。これらのプロシージャは、ユーザーがユーザーフォーム上のコントロールを操作するときに実行されます。
ユーザーフォームからの情報の使用
VBEは、ユーザーフォームに追加する各コントロールの名前を提供します。コントロールの名前はNameプロパティに対応します。この名前は、コード内の特定のコントロールを参照するために使用します。たとえば、CheckBoxコントロールをUserForm1という名前のユーザーフォームに追加すると、CheckBoxコントロールの名前はデフォルトでCheckBox1になります。 [プロパティ]ボックスを使用して、このコントロールにチェックマークを付けることができます。または、コードを書くことができます:
UserForm1。 CheckBox1。 Value = True
ほとんどの場合、ユーザーフォームのコードモジュールにユーザーフォームのコードを記述します。その場合、UserFormオブジェクト修飾子を省略して、
CheckBox1のような文を書くことができます。Value = True
VBAコードは、コントロールのさまざまなプロパティをチェックして、適切な処置をとることもできます。次のステートメントは、CheckBox1という名前のチェックボックスがオンの場合にPrintReportという名前のマクロを実行します。
If CheckBox1。 Value = True次にPrintReportを呼び出します。
VBEがコントロールに与えたデフォルト名を、より意味のあるものに変更することは、通常は良い考えです。