エクセルVBA複数列コンボボックス
以下は、我々は複数列コンボボックスが含まれているユーザーフォームを作成し、ExcelのVBAでプログラムを見ていきます。
ユーザーフォームは、我々は次のようにルックスを作成しようとしている。
このユーザーフォームを作成するには、次の手順を実行します。
-
Visual Basicエディターを開きます。プロジェクトエクスプローラが表示されていない場合、ビュー、プロジェクトエクスプローラ]をクリックします。
挿入、ユーザーフォーム]をクリックします。ツールボックスが自動的に表示されない場合、ビュー、[ツールボックス]をクリックします。画面は以下のように設定する必要があります。
ラベル、コンボボックスとコマンドボタンを追加します。3.。これが完了すると、結果は、前に示したユーザーフォームの画像と一致している必要があります。たとえば、ツールボックスからコンボボックスをクリックすることで、コンボボックスコントロールを作成します。次に、ユーザーフォーム上のコンボボックスをドラッグすることができます。
4.名前とコントロールのキャプションを変更することができます。名前は、Excel VBAコードで使用されています。キャプションは画面に表示されるものです。コントロールの名前を変更することをお勧めですが、我々は唯一この例では、いくつかのコントロールを持っているので、それはここでは必要ではありません。ユーザーフォーム、ラベルとコマンドボタンのキャプションを変更するには、[表示]、[プロパティ]ウィンドウをクリックして、各コントロールをクリックしてください。
、ユーザーフォームを表示するワークシート上のコマンドボタンを配置し、次のコード行を追加するには5:
Private Sub CommandButton1_Click() UserForm1.Show End Sub
私たちは今、サブUserForm_Initializeを作成しようとしています。ユーザーフォームのために、Showメソッドを使用する場合、このサブが自動的に実行されます。
-
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]をクリックしたときに結果。