• 締切済み

エクセル VBA チェックボックスについて

よろしくお願い致します。 OS:XP エクセル2003 VBAのことは、まったくの初心者です。 質問なのですが、下記のようなチェックボックス7にチェックが入れば、チェックボックス8~11に自由にチェックが入れれるようになり、逆にチャックボックス7にチェックが入ってない場合は、チェックボックス8~11のチェックはクリアされ、チェックできないものを作りました。 ここから、チェックボックス7にチェック入れたあとは、必ずチェックボックス9~11のどれかにチェックが入っている状態(ラジオボタンのような)で、チェックボックス7にチェックが入ってなかったら、8~11のチェックがクリアで尚且つ、チェックができなくなるようにするにはどうすればよいでしょうか? よろしくお願い致します。 Private Sub CheckBox7_Click() If CheckBox7.Value = True Then CheckBox8.Enabled = True CheckBox9.Enabled = True CheckBox10.Enabled = True CheckBox11.Enabled = True Else CheckBox8.Value = False CheckBox9.Value = False CheckBox10.Value = False CheckBox11.Value = False CheckBox8.Enabled = False CheckBox9.Enabled = False CheckBox10.Enabled = False CheckBox11.Enabled = False End If End Sub

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

質問の内容をきちんと把握していなくてすみませんが・・・ ボタンの操作は理解されているようですし、コードの1行、1行はそれほど複雑にはならないと思いますので、御質問のコードが組めれば、他の部分もご自身で作成可能だと推察いたします。 若干面倒なのは、条件と組合せが少々複雑なので、ご自分がお考えの制御をうまく整理することでしょう。 実際に実行した時に、起きるケースを分類し、それに対してどのような処理をするのが効率的かを考えるのが大切だと思われます。 思いついたままをコード化してゆくと、割れ鍋に閉じ蓋的になって長く(結果的に解り難い)コードの山になる可能性があります。 まずは、処理する内容を整理してみることをお勧めします。そうすれば意外と簡単にコード化が可能なのでは? 例えば、ご質問文で、ご自身のお考えの内容をうまく表しているとお考えと思いますが、表現されていない部分がまだまだあります。(例えば、7をチェックした後で、キャンセルしたらどのような状態になるのか。キャンセルは不可能なのか、とか・・・) あるいは・・ >9~11のどれかにチェックが入っている状態で、チェックボックス7にチェックが入ってなかったら、8~11のチェックがクリアで尚且つ、チェックができなくなるよう~ 7が無チェックの時に、9にチェックすると上記の処理から8~11(もちろん9も)チェッククリアでチェックできなくなるって、どこか矛盾していませんか?(正しく制御されていれば、最初から9にチェックできないはず) コード化する前に、処理の内容を整理してみましょう。

  • nihonjinn
  • ベストアンサー率39% (79/200)
回答No.1

>ラジオボタンのような というのならチェックボックスの変わりに「オプションボタン」で代用できませんか。同じ機能だと思うのですが。

参考URL:
http://www.sigoto.co.jp/excel/activex/actmenu03.htm