dポイントプレゼントキャンペーン実施中!

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

出来れば、ソースを記述してほしいです。
すみませんがよろしくお願いします。

A 回答 (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

ちなみに、グループボックスの数は、今回は、関係ないです。
グループボックス、全部オンにするか、オフにするかになります。
    • good
    • 1

こんばんは。



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
    • good
    • 0

間違いです。

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

グループボックスの数ではなく
チェックボックスの数です。

失礼。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!