複数ページのExcel VBAユーザーフォーム
我々は、複数のページが含まれているユーザーフォームを作成し、ExcelのVBAでプログラムを見て下記。このユーザーフォームはまた、画像が含まれています。
複数ページのコントロールには2つのページが含まれています。 1ページで、ユーザは彼/彼女の個人情報を入力することができます。 2ページで、ユーザは自分の絵/彼女が最も好きかを示すことができます。
このユーザーフォームを作成するには、次の手順を実行します。
-
Visual Basicエディターを開きます。プロジェクトエクスプローラが表示されていない場合、ビュー、プロジェクトエクスプローラ]をクリックします。
挿入、ユーザーフォーム]をクリックします。ツールボックスが自動的に表示されない場合、ビュー、[ツールボックス]をクリックします。画面は以下のように設定する必要があります。
3.(、最初の上部にある最初の下の2番目)、フレーム、オプションボタン(最初の左に、右の第二)、リストボックス、Imageコントロールとコマンドボタンをマルチページコントロール、ラベル、テキストボックスを追加します。これが完了すると、結果は、前に示したユーザーフォームの空のバージョンと一致している必要があります。たとえば、ツールボックスから複数ページをクリックすることで、複数ページのコントロールを作成します。次に、ユーザーフォーム上のマルチページコントロールをドラッグすることができます。あなたは性別の枠に到着すると、あなたはそれに2つのオプションボタンを配置する前に、まずこのフレームを描画することを忘れないでください。
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() With ListBox1 .AddItem "Mountains" .AddItem "Sunset" .AddItem "Beach" .AddItem "Winter" End With End Sub
説明:2ページのリストボックスが入力されます。
私たちは今、ユーザーフォームの最初の部分を作成しました。それはすでにきちんと見えますが、私たちは、リストボックスから項目を選択すると、まだ何も起こりませんか、我々は[OK]ボタンをクリックします。
10.ダウンロードした画像(このページの右側)と、「C:\テスト\」に追加します
11のプロジェクトエクスプローラ、UserForm1でダブルクリックします。
12.ダブルは、リストボックスをクリックしてください。
13.次のコード行を追加します。
Private Sub ListBox1_Click() If ListBox1.ListIndex = 0 Then Image1.Picture = LoadPicture("C:\test\Mountains.jpg") End If If ListBox1.ListIndex = 1 Then Image1.Picture = LoadPicture("C:\test\Sunset.jpg") End If If ListBox1.ListIndex = 2 Then Image1.Picture = LoadPicture("C:\test\Beach.jpg") End If If ListBox1.ListIndex = 3 Then Image1.Picture = LoadPicture("C:\test\Winter.jpg") End If End Sub
説明:これらのコード行は、リストボックスで選択した項目に応じた画像を読み込みます。
14.ダブルは、[OK]ボタンをクリックしてください。
15.次のコード行を追加します。
Private Sub CommandButton1_Click() Dim emptyRow As Long 'Make Sheet1 active Sheet1.Activate 'Determine emptyRow emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1 'Transfer information Cells(emptyRow, 1).Value = TextBox1.Value Cells(emptyRow, 2).Value = TextBox2.Value If OptionButton1.Value = True Then Cells(emptyRow, 3).Value = "Male" Else Cells(emptyRow, 3).Value = "Female" End If Cells(emptyRow, 4).Value = ListBox1.Value 'Close Userform Unload Me End Sub
説明:最初に、私たちは、シート1をアクティブにします。次に、我々はemptyRowを決定します。変数emptyRowは、最初の空の行であり、レコードが追加されるたびに増加します。次に、我々はemptyRowの特定の列にユーザーフォームから情報を転送します。最後に、我々は、ユーザーフォームを閉じます。
16.終了し、Visual Basicエディターは、行1に、以下に示すラベルを入力し、ユーザーフォームをテストします。
結果: