0

シングルチェックボックスをチェックするために機能するコードがあります

Sub check_if_checked()
    If CheckBox1.Value Then
        MsgBox "checked"
    Else
        MsgBox "not checked"
    End If
End Sub

私がやりたいことは、if ステートメントでチェック ボックス番号をループ反復変数に置き換えることができるループを作成することです。

何かのようなもの

If "CheckBox" & i.Value Then

これを行うことはできますか、それとも別の方法で行うことができますか?

4

1 に答える 1

0

以下の例では、、、、という名前の 4 つのチェック ボックスがありCheckBox1ます。 CheckBox2CheckBox3CheckBox4

Sub check_if_checked()
  Dim i As Integer
  i = 1
  Do While i <= 4
    If (IsNull(Me("CheckBox" & i).value)) Then _
      MsgBox ("CheckBox" & i & " is Null") Else _
      MsgBox (Me("CheckBox" & i).value)
    i = i + 1
  Loop
End Sub

または、次の方法が役立つ場合があります。

Sub check_if_checked()
  Dim TempCntrl As Control

  For Each TempCntrl In UserForm1.Controls
    If TempCntrl.Name Like "CheckBox*" Then
      MsgBox (TempCntrl.Name & ":  " & TempCntrl.value)
    End If
  Next
End Sub
于 2013-10-02T15:33:46.723 に答える