コントロール名を表す文字列を代入した変数と、
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
|