| | タイトル | : 複数チェックボックスの連動について |  | 記事No | : 12891 |  | 投稿日 | : 2008/08/12(Tue) 17:49 |  | 投稿者 | : ダリア | 
 お久しぶりです。ダリアです。環境はVB6、WIN XPです。
 複数のチェックボックスの連動について質問いたします。
 説明が下手なのですが、チェックボックスに以下のような機能を持たせようと思っています。
 (これを、本来ならばどのように表現するのかが、ちょっと分からないのです)
 
 フォーム上にA_CHECK_ALLというチェックボックスとA_CHECKというチェックボックスを7個用意します。
 
 そして、以下のような動作をさせようとしました。
 A_CHECK_ALLのチェックボックスを(チェックする)オン状態にすると、A_CHECKの7個のチェックボックス全てがオンされます。
 A_CHECK_ALLのチェックボックスを(チェックを外す)オフ状態にすると、A_CHECKの7個のチェックボックス全てがオフされます。
 仮にA_CHECK_ALLがオン状態で、A_CHECKの7個のチェックボックスのひとつがオフにされた場合、A_CHECK_ALLはオフになります。
 また、A_CHECK_ALLがオフ状態で、A_CHECKの7個のチェックボックスが全てオンになった場合、A_CHECK_ALLはオンになります。
 
 以下のようなイベントを各々のチェックボックスで作成したのですが、上手く動きません。
 ClickイベントはChangeイベントと同義なので、とうぜんながらA_CHECKの値が変わった途端にA_CHECKのイベントが発生してしまいます。
 このような場合、どのようにプログラムを組むべきなのでしょうか?
 よろしくお願いします。
 
 
 A_CHECK_ALLのイベント
 Private Sub A_CHECK_ALL_Click()
 
 Dim i As Integer
 
 With frmDiagSelect
 If .A_CHECK_ALL.Value = 1 Then
 For i = 0 To 7
 
 If .A_CHECK(i).Enabled = True Then
 .A_CHECK(i).Value = 1
 End If
 
 Next i
 Else
 For i = 0 To 7
 .A_CHECK(i).Value = 0
 Next i
 End If
 
 End With
 
 End Sub
 
 
 A_CHECKのイベント
 Private Sub A_CHECK_Click(Index As Integer)
 
 
 With frmDiagSelect
 For Index = 0 To 7
 If .A_CHECK(Index).Value = 0 Then
 .A_CHECK_ALL.Value = 0
 Exit Sub
 End If
 Next Index
 
 .A_CHECK_ALL.Value = 1
 
 End With
 
 End Sub
 
 |