以下は、私たちが依存コンボボックスが含まれているユーザーフォームを作成し、ExcelのVBAでプログラムを見ていきます。ユーザーフォームは、我々は次のようにルックスを作成しようとしている。

ドロップダウンリストからユーザを選択動物。その結果、ユーザは、2番目のドロップダウンリストから動物を選択することができます。

Dependent Combo Boxes in Excel VBA

ドロップダウンリストからユーザを選択するスポーツ。その結果、ユーザは、2番目のドロップダウンリストからスポーツを選択することができます。

Dependent Combo Boxes in Excel VBA

このユーザーフォームを作成するには、次の手順を実行します。

  1. Visual Basicエディターを開きます。プロジェクトエクスプローラが表示されていない場合、ビュー、プロジェクトエクスプローラ]をクリックします。

挿入、ユーザーフォーム]をクリックします。ツールボックスが自動的に表示されない場合、ビュー、[ツールボックス]をクリックします。画面は以下のように設定する必要があります。

Userform Screen Setup in Excel VBA

3.コマンドボタン(最初の左、右の第二の)コンボボックスを追加します。これが完了すると、結果は、前に示したユーザーフォームの画像と一致している必要があります。たとえば、ツールボックスからコンボボックスをクリックすることで、コンボボックスコントロールを作成します。

次に、ユーザーフォーム上のコンボボックスをドラッグすることができます。

4.名前とコントロールのキャプションを変更することができます。名前は、Excel VBAコードで使用されています。キャプションは画面に表示されるものです。コントロールの名前を変更することをお勧めですが、我々は唯一この例では、いくつかのコントロールを持っているので、それはここでは必要ではありません。ユーザーフォームとコマンドボタンのキャプションを変更するには、ビュー、プロパティウィンドウをクリックして、各コントロールをクリックしてください。

、ユーザーフォームを表示するワークシート上のコマンドボタンを配置し、次のコード行を追加するには5:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

私たちは今、サブUserForm_Initializeを作成しようとしています。ユーザーフォームのために、Showメソッドを使用する場合、このサブが自動的に実行されます。

  1. Visual Basicエディターを開きます。

7.プロジェクトエクスプローラでは、右のUserForm1をクリックし、[コードの表示]をクリックします。

8.左のドロップダウンリストからユーザーフォームを選択してください。右のドロップダウンリストから[Initialize]を選択してください。

次のコード行を追加します。9.:

Private Sub UserForm_Initialize()

With ComboBox1

.AddItem "Animals"

.AddItem "Sports"

.AddItem "Food"

End With

End Sub

説明:これらのコード行は、最初のコンボボックスを埋めます。

私たちは今、ユーザーフォームの最初の部分を作成しました。それはすでにきちんと見えますが、我々は最初のコンボボックスから項目を選択すると、まだ何も起こりません。

10.プロジェクトエクスプローラで、UserForm1でダブルクリックします。

11.ダブル最初のコンボボックスをクリックしてください。

12.次のコード行を追加します。

Private Sub ComboBox1_Change()

Dim index As Integer

index = ComboBox1.ListIndex

ComboBox2.Clear

Select Case index

Case Is = 0

With ComboBox2

.AddItem "Dog"

.AddItem "Cat"

.AddItem "Horse"

End With

Case Is = 1

With ComboBox2

.AddItem "Tennis"

.AddItem "Swimming"

.AddItem "Basketball"

End With

Case Is = 2

With ComboBox2

.AddItem "Pancakes"

.AddItem "Pizza"

.AddItem "Chinese"

End With

End Select

End Sub

説明:ExcelのVBAは、2番目のコンボボックスが満たされるべき項目を確認するために後続の各Caseステートメントをテストするために、変数のインデックスの値を使用しています。私達の リンクを経る選択ケース]

Select Case構造についての詳細を学ぶためのプログラム。

13.ダブルインポート]ボタンをクリックしてください。

14.次のコード行を追加します。

Private Sub CommandButton1_Click()

Range("A1").Value = ComboBox2.Value

End Sub

結果:

Dependent Combo Boxes in Excel VBA