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

前の記事 次の記事

トップのヒント