/ Excel VBAでコントロールをループする

Excel VBAのループスルーコントロール

ほんの数行のコードで、簡単に ループスルーコントロール 〜に Excel VBAユーザーフォーム。作成するUserformは次のようになります。

Excel VBAのループスルーコントロール

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

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

2. Insert、Userformをクリックします。ツールボックスが自動的に表示されない場合は、[表示]、[ツールボックス]の順にクリックします。あなたの画面は以下のように設定する必要があります。

Excel VBAでのユーザーフォームの画面設定

3。 ラベルを追加し、チェックボックスをオンにします(最初は上、下は2番目)。これが完了したら、その結果は前に示したUserformの画像と一致するはずです。たとえば、ツールボックスからCheckBoxをクリックして、チェックボックスコントロールを作成します。次に、ユーザーフォーム上のチェックボックスをドラッグすることができます。

4。 コントロールの名前とキャプションを変更できます。名前はExcel VBAコードで使用されます。キャプションは、画面に表示されるキャプションです。コントロールの名前を変更することをお勧めしますが、ここではいくつかのコントロールしか持たないため、ここでは必要ありません。 Userform、ラベル、チェックボックス、およびコマンドボタンのキャプションを変更するには、[表示]、[プロパティ]ウィンドウをクリックし、各コントロールをクリックします。

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

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

これで、Userformの最初の部分が作成されました。見た目はすっきりしていますが、Clearボタンをクリックしても何も起こりません。

6. Visual Basic Editorを開きます。

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

説明: Excel VBAは、Userformのすべてのコントロールをループします。 TypeName関数は、チェックボックスコントロールをフィルターに掛けるために使用されます。チェックボックスコントロールの場合、Excel VBAはチェックボックスをオフにします。ここでは無作為に選択されますが、任意の名前を使用できます。残りのコードでこの名前を参照することを忘れないでください。

[クリア]ボタンをクリックすると結果が表示されます。

ループスルーコントロールの結果

また読む: