[[20141025153009]] 『ラジオボタンでチェックボックスを自動表示させた』(tomoko) ページの最後に飛ぶ

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

 

『ラジオボタンでチェックボックスを自動表示させたい』(tomoko)

お世話になります。

 アンケート用紙を作成しています。
 年代によってアンケートチェック項目を変えたいと思っています。
 ラジオボタンで年代を選択させ、選択した条件によって表示させる
 チェックボックスを変えたいです。
 すべてチェックボックスで行う方法は出来たのですが、ラジオボタンを
 使う方法が分かりませんでした。
 よろしくお願いします。

 ↓○●=ラジオボタン □=チェックボックス

 ○10代 ○20代 ○30代 ○40代 ○50代

 ●10代(の時・・・)
 □りんご □みかん □バナナ

 ●20代(の時・・・)
 □ぶどう □なし □レモン

 ↓すべてチェックボックスの時はこんな感じで行いました。
 Sub アンケート()
 With ActiveSheet
 If CheckBoxes("Check Box 1").Value= 1Then

 .CheckBoxes("Check Box 4").Visible = True
 Else
 .CheckBoxes("Check Box 4").Visible = False
 End If
 End With
 End Sub

< 使用 Excel:Excel2003、使用 OS:WindowsXP >


 >すべてチェックボックスで行う方法は出来たのですが
 これ出来たのなら、作動するコードを提示してください。

 新規ブックにて、

 標準モジュールに、

 '========================================================================
 Option Explicit
 Sub 準備()
    Dim chkcaparray As Variant
    Dim g0 As Long
    Dim w As Single, h As Single
    chkcaparray = Array("Bz", "ミスチル", "ポルノ", "風男塾", "ラルク", "サザン", "ブルハ", "SMAP", "山下達郎")
    With ActiveSheet
       .DrawingObjects.Delete
       With .OptionButtons.Add(53.25, 50, 50, 27.75)
          .Name = "Old20-1,4"
          .Caption = "20代"
          .OnAction = "サブ項目の表示"
       End With
       With .OptionButtons.Add(150, 50, 50, 27.75)
          .Name = "Old30-5,9"
          .Caption = "30代"
          .OnAction = "サブ項目の表示"
       End With
       With .GroupBoxes.Add(45, 49.5, 167, 40.5)
          .Caption = "世代選択"
       End With
       With .Range("a1")
          w = .Width
          h = .Height
       End With
       For g0 = LBound(chkcaparray) To UBound(chkcaparray)
          With .CheckBoxes.Add(0, 0, w, h)
             .Name = "chk" & (g0 + 1)
             .Caption = chkcaparray(g0)
             .Visible = False
          End With
       Next
    End With
 End Sub
 Sub サブ項目の表示()
    Dim opnm As String
    Dim myarray As Variant
    Dim rng As Range
    Dim g0 As Long
    opnm = Application.Caller
    myarray = Split(Replace(opnm, Mid(opnm, 1, 6), ""), ",")
    Set rng = Range("b10")
    ActiveSheet.CheckBoxes.Visible = False
    For g0 = myarray(0) To myarray(1)
       With ActiveSheet.CheckBoxes("chk" & g0)
          .Left = rng.Left
          .Top = rng.Top
          .Visible = True
       End With
       Set rng = rng.Offset(0, 2)
    Next
 End Sub

 例題なので、20代と30代のみ、 今回は、世代別人気アーティストで・・・。

 準備を実行して試してみてください。

 オプションボタン名にデータを仕掛けた例です。

(ichinose) 2014/10/25(土) 17:16


chinose様
ありがとうございます!
希望のものです!

取り急ぎお礼まで。
(tomoko) 2014/10/27(月) 12:23


コメント返信:

[ 一覧(最新更新順) ]


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