VBA / VB6 - コンボボックスを強制的に開く
ExcelをVBAと組み合わせると、カスタマイズされ自動化されたデータ分析ソリューションを作成するための強力なツールが形成されます。 VBAにはComboBoxのような組み込みコントロールがあり、ユーザーはすでに入力されているリストから選択したり、独自の入力を提供したりできます。 カスタムコードでSetFocusメソッドを使用して、2つのComboBoxをリンクできます。 その後、ユーザーは一方のComboBoxから返されるキーコードを使用してもう一方のコードを初期化する別のコードを実行できます。 この機能は、一度ComboBox 1で選択が行われると、2番目のComboBoxが自動的に開くようにプログラマがコードを設定するのに役立ちます。
コンボボックスを強制的に開くには、次の関数があります。
ComboBox1.DropDown
しかし...そのためには、ComboBoxにフォーカスがあり、他のコントロールからのコマンドが開かれない場合があります。
別のComboBoxを開くには、ここでトリックを使用する必要があります。
- ワークシートまたはUserFormに2 ComboBoxを配置し、ComboBox 1とCombBox 2としてそれぞれ名前を付けます。
- 次のコードを使用して2つのComboBoxをリンクします。
Private Sub ComboBox1_Change() '=================== 1' ComboBox2.Activate '=========================================================== 1 VB6 ========= 2 'ComboBox2.SetFocus' ===================================== ======== SendKeys "^(F4)" End SubプライベートSub ComboBox2_KeyDown(ByForm KeyCodeをMSForms.ReturnInteger、ByValを整数としてシフト)KeyCode = 16の場合ComboBox2.DropDown End Sub End Sub
ComboBoxの場所に応じて1行目または2行目をクリアする。
結果:ComboBox 1を選択すると、2番目のものが自動的に開きます。
Excel 97 - 2003用のサンプルをダウンロードする
- サーバー1://sd-5.archive-host.com/membres/up/b05c9f3873215e8d2df70f056b74dce61198c32d/ASTUCES/3_combo__DropDown.xls