[[20121211185746]] 『ラジオボタンでの条件分岐(複数条件)』(ねこ) ページの最後に飛ぶ

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

 

『ラジオボタンでの条件分岐(複数条件)』(ねこ)

 Excel2010の開発タブの挿入>フォームコントロールでラジオボタンを置いています。

 ・1つ目のラジオボタン(グループ)が「ツアー」か「フリー」を選択します
 ・2つ目のラジオボタン(グループ)は「午前」か「午後」か「終日」
 ・3つ目のラジオボタン(グループ)は「食事なし」「ホテル」「レストラン」

 「フリー」かつ「午前」を選択した場合、3つ目では「ホテル」か「レストラン」
 からしか選択できない(「食事なしは選択できない」)

 以上のことを実行したいのですが、可能かどうかご教授いただけますでしょうか?


 できないことはないけど、ActiveXのOptionButtonのほうがChangeイベントが使えて、柔軟なコードになると思うけど?
 どうしてもフォームツールでやりたい?

 (ぶらっと)

 コメントしたように自分ならActiveXでやるけど、フォームツールなら。
 (もっと、スマートな処理方法もあるかもしれないけど)

 1つめのグループと2つめのグループの【すべてのラジオボタン】に以下をマクロ登録。
 (ラジオボタンの名前は実際の名前に変更してね)

 Sub test()
    Dim op1 As Long
    Dim op2 As Long

    op1 = ActiveSheet.OptionButtons("Option Button 3").Value    'フリー
    op2 = ActiveSheet.OptionButtons("Option Button 5").Value    '午前
    With ActiveSheet.OptionButtons("Option Button 9")           '食事無し
        If op1 = xlOn And op2 = xlOn Then
            .Visible = False
            .Value = xlOff
        Else
            .Visible = True
        End If
    End With
 End Sub

 (ぶらっと)


 コメントありがとうございます!
 すでに存在しているExcelがフォームツールで作成してあったので、フォームツールでと
 お願いしましたが、今後のことも考え、AxtiveXのOptionButtonで作成しなおしました。
 お手数ですが、そちらのやり方を教えていただいてもよろしいでしょうか?

 (ねこ)


 じゃぁ、
 グループ1が OptionButton1(ツァー)、OptionButton2(フリー)
 グループ2が OptionButton3(午前)、OptionButton4(午後)、OptionButton5(終日)
 グループ3が OptionButton6(食事無し)、OptionButton7(ホテル)、optionButton8(レストラン)
 だとして。(おのおののグループ化の方法はわかるね?)

 シートモジュールに。
 (なお、アップ済みのフォームツール相手のコードでは、選択不可の時に非表示にしていたけど
  ActiveXコントロールは、色合いを薄くして選択できないように設定できるので、そちらにしている)

 Private Sub OptionButton2_Change()  'フリー
    Call 食事可否
 End Sub

 Private Sub OptionButton3_Change()   '午前
    Call 食事可否
 End Sub

 Private Function 食事可否()
    With OptionButton6      '食事無し
        If OptionButton2.Value And OptionButton3.Value Then
            .Enabled = False
            .Value = False
        Else
            .Enabled = True
        End If
    End With
 End Function

 (ぶらっと)

コメント返信:

[ 一覧(最新更新順) ]


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