ユーザーフォームのコンボボックスはドロップダウンメニューのようなもので、使用可能なオプションからオプションを選択するために使用できます。これは、ワークシートのデータ検証を使用して作成するドロップダウンのようなものです。

ほとんどのデジタル形式では、少なくとも1つのコンボボックスを見たことがあるはずです。州のリストから州、コースのリストからコース、国のリストから国などを選択するためのものであった可能性があります。この記事では、VBAユーザーフォームにコンボボックスを追加する方法とその方法を学習します。コンボボックスを値で初期化し、コンボボックスから値を取得する方法。

ユーザーフォームへのコンボボックスの追加コンボボックスをユーザーフォームに追加するには、最初にユーザーフォームが必要です。

ダー!したがって、CTRL + F11を使用してVBEを開きます。ワークブックを右クリックし、挿入に移動してユーザーフォームをクリックします。ユーザーフォームが追加されました。ユーザーフォームの詳細については、VBAの `link:/ applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [here]`をご覧ください。

image

ツールボックスから、コンボボックスを選択します。これは、一番上の行の4番目のオプションです。ツールボックスが表示されない場合。メニューの[表示]に移動し、[ツールボックス]をクリックします。ツールボックスが表示されます。

image

このコンボボックスにはいくつかの州のリストとフォームを送信するための送信ボタンが含まれるため、州のラベルを追加しました。

ユーザーフォームでコンボボックスを初期化する方法は?これはほとんどの人が間違いを犯す部分です。学習者は、コンボボックスに値をロードするためのコードを記述してから、ボタンを送信することがあります。また、ユーザーフォームを読み込むと、コンボボックスに値が表示されません。コンボボックスをロードするには、ユーザーフォームをロードする前にコードを記述する必要があります。これは、モジュール、c、またはフォームをロードするボタンで実行できます。コンボボックスリストをロードするコードは、formname.showコマンドの前に配置する必要があります。

サブルーチンを呼び出すユーザーフォームにコンボボックスをロードする

状態コンボボックスに配列をハードコーディングしたいとします。そこで、ユーザーフォームをロードして情報を入力するサブルーチンを作成します。以下のコードを参照してください。

Sub load_userform()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

UserForm1.Show

End Sub

インドの州の名前をいくつか含む配列「州」を定義します。

コンボボックスはユーザーフォームの一部であるため、ユーザーフォーム名を使用してコンボボックスにアクセスします。

私のユーザーフォームの名前はuserform1です。そして、comboboxの名前はcombobox1です。これらはデフォルトの名前です。プロパティウィンドウから変更できます。

次に、コンボボックスのリストプロパティを状態で初期化します。

次に、showコマンドを使用してuserform1を表示します。

上記のコードを実行すると、コンボボックスにすべての状態が一覧表示されます。

image

UserForm_Initialize()イベントを使用したコンボボックスの初期化。

ユーザーフォームにコンボボックスコンポーネントをロードする別の方法は、ユーザーフォームイベントInitializeを使用することです。このイベントは、ユーザーフォームが読み込まれる前に実行されます。

ユーザーフォームが読み込まれる前に実行したいことはすべて、ここで実行できます。

それらの1つは、コンボボックス要素のロードです。したがって、ユーザーフォームをダブルクリックして、ユーザーフォームオブジェクトのコーディング領域を開きます。次に、左側のドロップダウンメニューからユーザーフォームを選択します。次に、右側のドロップダウンメニューから[初期化]を選択します。

image

空のサブ名UserForm_Initialize()が挿入されます。このサブに記述されたものはすべて、ユーザーフォームが表示される前に実行されます。

そこで、ここにコンボボックスの初期化コードを記述します。

Private Sub UserForm_Initialize()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

End Sub

ここにはuserform1.showコマンドがないことに注意してください。それはまだそのモジュールにあります。そのサブは、ユーザーフォームを画面に表示するために使用されます。

Sub load_userform()

UserForm1.Show

End Sub

したがって、ユーザーは、コマンド、ボタン、またはマクロで割り当てられた要素を使用してload_userformsubを実行します。コンパイラがコードuserform1.showコマンドを実行すると、すぐにuseforma_initialize()イベントが実行されます。その後、ユーザーフォームがユーザーに表示されます。

注:

コマンドbutton1clickの値でコンボボックスを初期化するコードを記述した場合、コンボボックスには何も表示されません。

コンボボックスを値で初期化するには、ユーザーがコンボボックスに到達して入力する前に発生したイベントでコンボボックスをロードします。

ComboBoxから値を取得するフォームを使用して、いくつかの情報を取得します。そして、その情報を使用するには、それらを取得する必要があります。ユーザーフォームコンボボックスから任意の値を取得するには、combobox.valueプロパティを使用します。通常、ユーザーがフォームに入力し、送信ボタンを使用してフォームを送信すると、フォーム要素から値を取得します。したがって、commandbutton_clickイベントを使用できます。したがって、コマンドボタンを挿入して、まだ持っていない場合は、そのボタンに送信を書き込みます。それをダブルクリックすると、commandButton_clickイベント内に移動します。

次に、値を格納する変数を作成します。必要に応じてシートに保存してください。最後に、UnloadMeコマンドを使用してフォームを終了します。以下のコードに示すように。

Private Sub CommandButton1_Click()

State = ComboBox1.Value

ThisWorkbook.Worksheets("sheet1").Range("A1") = State

Unload Me

End Sub

そうですね、これがVBAユーザーフォームでコンボボックスを使用する方法です。私は説明的で要領を得たと思います。このトピックまたはその他のVBA関連の質問について質問がある場合は、以下のコメントセクションで質問してください。

関連記事:

link:/ applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [Excel VBAUserForms入門] | * Excelでフォームを作成する方法と使用方法を説明しますVBAツールボックス、ユーザー入力の処理方法、そして最後にユーザー入力の保存方法。これらのトピックについて、1つの例とステップバイステップガイドを使用して説明します。

link:/ general-topics-in-vba-vba-variables-in-excel [ExcelのVBA変数] | * VBAはVisualBasic forApplicationsの略です。

これは、Microsoftのプログラミング言語です。これは、MSExcel、MS-Word、MS-AccessなどのMicrosoft Officeアプリケーションで使用されますが、VBA変数は特定のキーワードです。

link:/ general-topics-in-vba-excel-vba-variable-scope [Excel VBA Variable Scope] | *すべてのプログラミング言語には、定義された変数にアクセスできる場所を定義する変数アクセス指定子があります。 ExcelVBAも例外ではありません。 VBAにもスコープ指定子があります。

link:/ cells-ranges-rows-and-columns-in-vba-what-is-the-difference-between-byref-and-byval-arguments-vba-interview-question [ByRef and ByVal Arguments] |引数がByRef引数として別のサブまたは関数に渡されると、実際の変数の参照が送信されます。変数のコピーに加えられた変更は、元の引数に反映されます。

link:/ files-workbook-and-worksheets-in-vba-delete-sheets-without-confirmation-prompts-using-vba-in-microsoft-excel [MicrosoftExcelのVBAを使用して確認プロンプトなしでシートを削除する] | VBAを使用してシートを削除しているので、何をしているのかがわかります。

この警告を表示せず、いまいましいシートを削除しないようにExcelに指示します。

link:/ files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Microsoft Excel2016でVBAを使用して新しいブックを追加および保存する] |このコードでは、最初にワークブックオブジェクトへの参照を作成しました。次に、新しいブックオブジェクトで初期化しました。このアプローチの利点は、この新しいワークブックの操作を簡単に実行できることです。保存、閉じる、削除などのように `link:/ menus-toolbars-status-bar-in-vba-display-a-message-on-the-statusbar-using-vba-in-microsoft-excel [Display A Message On ExcelVBAステータスバー*] `| Excelのステータスバーはコードモニターとして使用できます。 VBAコードが長く、VBAを使用していくつかのタスクを実行する場合、画面のちらつきが表示されないように、画面の更新を無効にすることがよくあります。

link:/ general-topics-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Microsoft Excel2016でVBAを使用して警告メッセージをオフにする] | *このコードはVBAを無効にするだけではありませんアラートだけでなく、コードの時間効率も向上します。方法を見てみましょう。

人気の記事:

link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を高めるための50のExcelショートカット] |あなたの仕事をより速くしてください。これらの50のショートカットにより、Excelでの作業がさらに高速になります。

link:/ forms-and-functions-introduction-of-vlookup-function [ExcelのVLOOKUP関数] |これは、さまざまな範囲やシートから値を検索するために使用される、Excelの最も使用され人気のある関数の1つです。 link:/ Tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] |この驚くべき関数を使用して、条件付きの値をカウントします。特定の値をカウントするためにデータをフィルタリングする必要はありません。

ダッシュボードを準備するには、Countif関数が不可欠です。

link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法] |これは、ダッシュボードのもう1つの重要な機能です。これは、特定の条件で値を合計するのに役立ちます。