私はExcelのVBAコードを持っています。ユーザーフォームを用意し、実行時にスプレッドシートからデータを取得してユーザーフォームにckeckboxesを入力します。OKボタンをクリックすると、チェックボックスの値をチェックするコードが必要になります。チェックボックスがチェックされている場合、それに応じていくつかの操作を実行する必要があります。「IF」ループを使用しました。しかし、コードは IF ループに行きません。スキップするだけです。以下のサンプルコードがあります。
Private Sub CommandButton1_Click()
lastrow = Range("D65536").End(xlUp).Row
For idx = 1 To latrow
If Me.Controls("cname" & idx).Value = True Then
'my code
End If
Next idx
UserForm1.Hide
End Sub
Private Sub selectall()
Dim idx As Integer
lastrow = Range("D65536").End(xlUp).Row - 4
Dim chk As Control
For idx = 1 To lastrow
Me.Controls("cname" & idx).Value = True
Next idx
End Sub
Private Sub userform_initialize()
Dim idx As Integer
lastrow = Range("D65536").End(xlUp).Row - 4
Dim EachLabel As Integer
Dim cCntrl As Control
Dim chk As Control
Dim tbindex As Integer
For idx = 1 To lastrow
Set chk1 = Frame1.Controls.Add("Forms.checkbox.1", "cname" & idx, True)
chk1.Caption = Cells(4 + idx, 4).Value
chk1.Visible = True
chk1.Left = 6
chk1.Top = 1 + idx * 17.5
chk1.Width = 100
chk1.Height = 15.75
Next
UserForm1.Frame1.ScrollBars = fmScrollBarsVertical
UserForm1.Frame1.ScrollHeight = 20 * lastrow
End Sub