わずか数行のコードで、我々は、Excel VBAユーザーフォーム上のコントロールを簡単にループすることができます。ユーザーフォームは、我々は次のようにルックスを作成しようとしている。

Loop through Controls 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

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

  1. Visual Basicエディターを開きます。

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

8.ダブルクリア]ボタンをクリックしてください。

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

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls

If TypeName(contr) = "CheckBox" Then

contr.Value = False

End If

Next

End Sub

説明:エクセルVBAユーザーフォーム上のすべてのコントロールをループします。型名機能は、チェックボックスコントロールを除去するために使用されます。チェックボックスコントロール場合は、ExcelのVBAは、チェックボックスのチェックを外し。 CONTRがランダムにここで選択されている、あなたは任意の名前を使用することができます。あなたのコードの残りの部分でこの名前を参照することを忘れないでください。

あなたはクリアボタンをクリックすると、結果:

Loop through Controls Result