[[20070501124316]] 『トグルボタンでの排他制御につきまして』(ノート青) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『トグルボタンでの排他制御につきまして』(ノート青)
 OS:XP
 エクセル2003
 お世話になっております。
 表題見られた方は、『「オプションボタン使え!」以上』
 と思われるかたが、大多数と思いますが、なにとぞ、お知恵を
 お借りできないでしょうか?

 下記の通り、トグル1をクリックされたら、トグル2,3を
 元に戻す(False)と書きました。
 順番に、トグル1⇒トグル2⇒トグル3と押していくと思い通りに
 動きますが、変則(例:トグル3⇒トグル2)など押すと期待通りの
 動きになりません。

 Private Sub ToggleButton1_Click()
     ToggleButton1.Value = True
     ToggleButton2.Value = False
     ToggleButton3.Value = False
 End Sub

 Private Sub ToggleButton2_Click()   
     ToggleButton1.Value = False
     ToggleButton2.Value = True
     ToggleButton3.Value = False

 End Sub

 Private Sub ToggleButton3_Click()

     ToggleButton1.Value = False
     ToggleButton2.Value = False
     ToggleButton3.Value = True

 End Sub

 トグルにこだわる理由は、不特定多数の年配者でも
 直感的にわかるようにボタンを押すイメージでと、
 考えています。
 画面を、全部、同じボタン形式に統一したいという
 思惑があります。

 ご提示のコードでは、ボタンをクリックしたら
 クリックしたボタンが押し込まれた状態になるように
 なっています。

 ではなくて、
 ボタンがTrueだったらFalseに
 FalseだったらTrueに
 という考えで作ってみてください。
 (MARBIN)

 MARIBIN様へ
 お忙しい中、早速のご教授ありがとうございました。
 書き直して、結果のご報告をいたします。
 (ノート 青)

MARBIN様
 お世話になっております。
 記載しなおしましたが、現象変わらずでした。
 基本的な知識がないので、誤った記載をしているのだと思います。

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = False Then
        ToggleButton1.Value = True
    End If
    If ToggleButton2.Value = True Then
        ToggleButton2.Value = False
    End If
    If ToggleButton3.Value = True Then
        ToggleButton3.Value = False
    End If
 End Sub

 Private Sub ToggleButton2_Click()
    If ToggleButton1.Value = True Then
        ToggleButton1.Value = False
    End If
    If ToggleButton2.Value = False Then
        ToggleButton2.Value = True
    End If
    If ToggleButton3.Value = True Then
        ToggleButton3.Value = False
    End If

 End Sub

 Private Sub ToggleButton3_Click()
    If ToggleButton1.Value = True Then
        ToggleButton1.Value = False
    End If
    If ToggleButton2.Value = True Then
        ToggleButton2.Value = False
    End If
    If ToggleButton3.Value = False Then
        ToggleButton3.Value = True
    End If
 End Sub

 自分でも調べてみますが、もし、お時間があるときにでもご教授いただけると
 助かります。
 よろしくお願いいたします。


 こんなかんじでいけるとおもいます。

 Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = False Then
        ToggleButton1.Value = True
        ToggleButton2.Value = False
        ToggleButton3.Value = False
    Else
       ToggleButton1.Value = False
    End If
 End Sub
 Private Sub ToggleButton2_Click()
    If ToggleButton2.Value = False Then
        ToggleButton2.Value = True
        ToggleButton1.Value = False
        ToggleButton3.Value = False
    Else
       ToggleButton2.Value = False
    End If
 End Sub
 Private Sub ToggleButton3_Click()
   If ToggleButton3.Value = False Then
        ToggleButton3.Value = True
        ToggleButton1.Value = False
        ToggleButton2.Value = False
    Else
       ToggleButton3.Value = False
    End If
 End Sub
 (MARBIN)

 ToggleButton1_Clickイベントで、ToggleButton2.Value = False のように
 記述すると、そこで ToggleButton2_Clickイベント が発生してしまうので
 うまくいかないのではないかと思います。Value が False の時は
 何もしないようにしたらうまくいきました。
(純丸)(o^-')b
 
 Private Sub ToggleButton1_Click()
   If ToggleButton1.Value = False Then Exit Sub
   ToggleButton2.Value = False
   ToggleButton3.Value = False
 End Sub

 Private Sub ToggleButton2_Click()
   If ToggleButton2.Value = False Then Exit Sub
   ToggleButton1.Value = False
   ToggleButton3.Value = False
 End Sub

 Private Sub ToggleButton3_Click()
   If ToggleButton3.Value = False Then Exit Sub
   ToggleButton1.Value = False
   ToggleButton2.Value = False
 End Sub


 MARBIN様 
 純丸 様

 ご教授ありがとうございました。
 両方とも、動作確認できました。
 なるほど、・・・value=faleseだと、クリックイベントが
 発生していたんですね。
 とても、勉強になりました。
 お忙しい中、ご教授いただきありがとうございました。
 

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.