HOME > 即効テクニック > Excel VBA > 文字列操作関連のテクニック > コントロールを文字列(変数)を使って参照する

即効テクニック

文字列操作関連のテクニック

コントロールを文字列(変数)を使って参照する

(Excel 97/2000)
コントロール名を表す文字列を代入した変数と、Controlsコレクションを使って、コントロールを参照することができます。
サンプルマクロでは、フォーム「UserForm1」にチェックボックスを12個配置して、このチェックボックスの状態を順に参照しています。
チェックボックスには、「ck1」〜「ck12」の名前が付けられているとします。
マクロは、同じフォーム上に配置されたコマンドボックス「CommandButton1」のクリック時のイベントプロシージャに作成していますので、フォームを表示して、いくつかのチェックボックスをチェックしてからコマンドボタンをクリックすると、「ck1」から順番にチェック状態がメッセージボックスに表示されます。
Private Sub CommandButton1_Click()
    Dim nCnt    As Integer
    Dim strCtl  As String
    
    For nCnt = 1 To 12 Step 1
        strCtl = "ck" & CStr(nCnt)
        If UserForm1.Controls(strCtl).Value = True Then
            MsgBox strCtl & "は、ONです"
        Else
            MsgBox strCtl & "は、OFFです"
        End If
    Next nCnt

End Sub