以下は、我々は複数列コンボボックスが含まれているユーザーフォームを作成し、ExcelのVBAでプログラムを見ていきます。

ユーザーフォームは、我々は次のようにルックスを作成しようとしている。

Multicolumn Combo Box 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()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String

Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"

Films(2, 1) = "Speed"

Films(3, 1) = "Star Wars"

Films(4, 1) = "The Godfather"

Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"

Films(2, 2) = "Action"

Films(3, 2) = "Sci-Fi"

Films(4, 2) = "Crime"

Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

説明:最初のコード行は、代わりに、実行時に列数を設定するので、あなたはまた、設計時にこの設定を構成することができます。2.にコンボボックスの列数を設定します。これを達成するために、コンボボックスコントロールをマウスで右クリックし、[プロパティ]をクリックして、私たちは宣言2.次にColumnCountプロパティを設定し、2次元配列を初期化します。最後のコード行は、コンボボックスに配列を割り当てます。

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

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

11.ダブルは、[OK]ボタンをクリックしてください。

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

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next

MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

注:これらのコード行は、Excel VBAユーザーフォームを閉じて、選択した項目とジャンルを表示します。 「エラーの再開に続い」ステートメントは、ユーザーが彼/彼女の自身の映画(この場合は利用可能なジャンルがありません)に記入のエラーを無視します。

13.ダブルは[キャンセル]ボタンをクリックしてください。

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

Private Sub CommandButton2_Click()

Unload Me

End Sub

あなたはスピードを選択し、[OK]をクリックしたときに結果。

Multicolumn Combo Box Result

Multicolumn Combo Box Result