0
ユーザーフォームのチェックボックスから値を取得するのに問題があります。私が持っている問題は、ユーザーフォームがシートからの値に基づいて可変数のチェックボックスを作成することです。このためコード:VBAがユーザーフォームからチェックボックスの値を取得する
Private Sub UserForm_Initialize()
Dim LastRow As Long
Dim i As Long
Dim Teller As Long
Dim chkBox As MSForms.CheckBox
Teller = 1
LastRow = Worksheets("Sheet").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To LastRow
If Worksheets("Sheet").Cells(i, 1).Value = Worksheets("Sheet").Range("S1").Value Then
Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & Teller)
chkBox.Caption = Worksheets("Sheet").Cells(i, 9).Value
chkBox.Left = 5
chkBox.Top = 25 + ((Teller - 1) * 20)
Teller = Teller + 1
End If
Next i
End Sub
だから、これはCheckBox_1という名前のチェックボックスの数を作成し、CheckBox_2など 問題は、私はモジュールにCheckBox_1の値を取得しようとすると、私ので、CheckBox_1がまだ作成されていないですそれを使うことができません。
Dim x as String
With UserForm4
.Show
x = .CheckBox_1
MsgBox (x)
End
End With
**必ず**コントロールをループする必要はありません - x = .Controls( "CheckBox_1")。値は、OPが最初のものを望むことを知っている場合に機能します。 (しかし、明らかに 'x = .Controls(" CheckBox_ "&i).Value'はループが必要な場合に使用できます。) – YowE3K
@ YowE3Kこれはうまくいきました!お二人のおかげです。 – Stan