エクセルVBAのコレクションをコントロール
エクセルVBAでユーザーフォームを作成するときは、コントロールを簡単にループにControlsコレクションを使用すると、特定の値に各コントロールのプロパティを設定することができます。
ユーザーフォームは、我々は次のようにルックスを作成しようとしている。
このユーザーフォームを作成するには、次の手順を実行します。
-
Visual Basicエディターを開きます。プロジェクトエクスプローラが表示されていない場合、ビュー、プロジェクトエクスプローラ]をクリックします。
挿入、ユーザーフォーム]をクリックします。ツールボックスが自動的に表示されない場合、ビュー、[ツールボックス]をクリックします。画面は以下のように設定する必要があります。
3.ラベル、テキストボックス(最初の上部に、まず以下の二など)とコマンドボタンを追加します。これが完了すると、結果は、前に示したユーザーフォームの画像と一致している必要があります。たとえば、ツールボックスからテキストボックスをクリックすることで、テキストボックスコントロールを作成します。次に、ユーザーフォーム上のテキストボックスをドラッグすることができます。
4.ユーザーフォーム、ラベルとコマンドボタンのキャプションを変更するには、ビュー、プロパティウィンドウをクリックして、各コントロールをクリックしてください。
、ユーザーフォームを表示するワークシート上のコマンドボタンを配置し、次のコード行を追加するには5:
Private Sub CommandButton1_Click() UserForm1.Show vbModeless End Sub
説明:vbModelessを追加することによって、あなたは同時にあなたのワークシートのユーザーフォームと作品を使用することができます。
私たちは今、ユーザーフォームの最初の部分を作成しました。それはすでにきちんと見えますが、我々はユーザーフォーム上のコマンドボタンをクリックすると、まだ何も起こりません。
-
Visual Basicエディターを開きます。
7.プロジェクトエクスプローラで、UserForm1でダブルクリックします。
8.ダブルは、コマンドボタンをクリックします。
次のコード行を追加します。9.:
Private Sub CommandButton1_Click() Dim i As Integer For i = 1 To 10 Controls("TextBox" & i).Value = Cells(i + 1, 1).Value Next i End Sub
説明:わずか数行のコードでは、私たちはシートからの電話番号とテキストボックスを埋めることができます。私たちは、CONCATENATE(参加)の要素に&演算子を使用していました。我々は、テキストボックスコントロール(TextBox1を、TextBox2を、TextBox3、など)の名前を変更していないため、これらのコード行は、動作します。コントロールの名前を変更するには、[表示]、[プロパティ]ウィンドウをクリックして、各コントロールをクリックしました。
あなたはシート上のコマンドボタンをクリックすると、結果: