• ベストアンサー

VB2008かVB2005で、チェックボックスをループ文を使ってFalseにしたい

Visual Basic 2008か2005で グループボックス1に50個、 グループボックス2に25個ののチェックボックスがあるとします。 これらのうち、グループボックス1の50個のチェックボックスだけ 全てチェックを外す処理を作りたいのですが、 1個1個チェックボックスをFalseにする文を記述すると 同じ様なソースが増えてしまうので、 Forのようなループを使って簡潔に書くことは出来ないでしょうか? 出来れば、ソースを記述してほしいです。 すみませんがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom11
  • ベストアンサー率53% (134/251)
回答No.1

こんにちは、 グループボックス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)

noname#187541
noname#187541
回答No.3

こんばんは。 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)
回答No.2

間違いです。修正 >ちなみに、グループボックスの数は、今回は、関係ないです。 >グループボックス、全部オンにするか、オフにするかになります グループボックスの数ではなく チェックボックスの数です。 失礼。