エクセルVBAでユーザーフォームを作成するときは、コントロールを簡単にループにControlsコレクションを使用すると、特定の値に各コントロールのプロパティを設定することができます。

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

Controls Collection in Excel VBA

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

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

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

Userform Screen Setup in Excel VBA

3.ラベル、テキストボックス(最初の上部に、まず以下の二など)とコマンドボタンを追加します。これが完了すると、結果は、前に示したユーザーフォームの画像と一致している必要があります。たとえば、ツールボックスからテキストボックスをクリックすることで、テキストボックスコントロールを作成します。次に、ユーザーフォーム上のテキストボックスをドラッグすることができます。

4.ユーザーフォーム、ラベルとコマンドボタンのキャプションを変更するには、ビュー、プロパティウィンドウをクリックして、各コントロールをクリックしてください。

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

Private Sub CommandButton1_Click()

UserForm1.Show vbModeless

End Sub

説明:vbModelessを追加することによって、あなたは同時にあなたのワークシートのユーザーフォームと作品を使用することができます。

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

  1. 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、など)の名前を変更していないため、これらのコード行は、動作します。コントロールの名前を変更するには、[表示]、[プロパティ]ウィンドウをクリックして、各コントロールをクリックしました。

あなたはシート上のコマンドボタンをクリックすると、結果:

Controls Collection Result