- ベストアンサー
VB2008かVB2005で、チェックボックスをループ文を使ってFalseにしたい
Visual Basic 2008か2005で グループボックス1に50個、 グループボックス2に25個ののチェックボックスがあるとします。 これらのうち、グループボックス1の50個のチェックボックスだけ 全てチェックを外す処理を作りたいのですが、 1個1個チェックボックスをFalseにする文を記述すると 同じ様なソースが増えてしまうので、 Forのようなループを使って簡潔に書くことは出来ないでしょうか? 出来れば、ソースを記述してほしいです。 すみませんがよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは、 グループボックス1に、チェックボックスのみ50個しかないと 仮定すると(グループボックス1にテキストボックス等などの コントロールが他にない) 以下のコードで出来そうです。 Dim o As Object For Each o In Me.GroupBox1.Controls o.CheckState = 1 Next すべてのチェックボックスをオンの時 o.CheckState = 1 オフの時 o.CheckState = 0 ちなみに、グループボックスの数は、今回は、関係ないです。 グループボックス、全部オンにするか、オフにするかになります。
その他の回答 (2)
こんばんは。 GroupBoxにCheckBox以外のコントロールがある場合はIf文でチェックすればいいでしょう。 Dim myobj As Object For Each myobj In Me.GroupBox1.Controls If TypeName(myobj) = "CheckBox" Then myobj.checkstate = 0 End If Next
- tom11
- ベストアンサー率53% (134/251)
間違いです。修正 >ちなみに、グループボックスの数は、今回は、関係ないです。 >グループボックス、全部オンにするか、オフにするかになります グループボックスの数ではなく チェックボックスの数です。 失礼。