アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2007を使用し、以下のようなチェックリストを作成しました。

「□」はActiveXコントロールのチェックボックスです。

2行目:□ りんご
3行目:□ もも
4行目:□ みかん
5行目:□ ばなな

6行目:とくにありません
7行目:りんごがすき
8行目:ももがすき
9行目:みかんがすき
10行目:ばなながすき

2行目にチェックが入っていれば
7行目:りんごがすき
を表示、
2行目と5行目にチェックが入っていれば
7行目:りんごがすき
10行目:ばなながすき
を表示、そして
2~5行目のチェックボックスにすべてチェックが入っていない場合は
6行目:とくにありません
だけを表示させたいです。

どのようにマクロをくんだらいいでしょうか?

ちなみに、1シートに表示されるチェックボックスはこれだけでなく、

11行目:□ いぬ
12行目:□ ねこ
13行目:□ とり

14行目:とくにありません
15行目:いぬがすき
16行目:ねこがすき
17行目:とりがすき

と、果物、動物それぞれで同じ原理で同様の動作をさせたいと思っています。

IfかCaseを組めばいいのかと思っているのですが
複雑な条件文をどのように記述すればいいかわかりません。

ご教授お願いいたします!

A 回答 (1件)

>「□」はActiveXコントロールのチェックボックスです。



という事はそれぞれのチェックボックスごとに、イチイチマクロを作成してかなきゃならないって事を十分理解していますね。


手順:
CheckBox1から4まで準備する
シートモジュールにそれぞれ次のように準備する

Private Sub CheckBox1_Click()
Rows(7).Hidden = Not CheckBox1.Value
Rows(6).Hidden = CheckBox1.Value Or CheckBox2.Value Or CheckBox3.Value Or CheckBox4.Value
End Sub

Private Sub CheckBox2_Click()
Rows(8).Hidden = Not CheckBox2.Value
Rows(6).Hidden = CheckBox1.Value Or CheckBox2.Value Or CheckBox3.Value Or CheckBox4.Value
End Sub

Private Sub CheckBox3_Click()
Rows(9).Hidden = Not CheckBox3.Value
Rows(6).Hidden = CheckBox1.Value Or CheckBox2.Value Or CheckBox3.Value Or CheckBox4.Value
End Sub

Private Sub CheckBox4_Click()
Rows(10).Hidden = Not CheckBox4.Value
Rows(6).Hidden = CheckBox1.Value Or CheckBox2.Value Or CheckBox3.Value Or CheckBox4.Value
End Sub

Sub reset_check1to4()
CheckBox1 = False
CheckBox2 = False
CheckBox3 = False
CheckBox4 = False
End Sub


最初「まだどれもチェックされていない」とき、「とくになし」だけ表示し他を隠した状態を初期の状態にするため、reset_check1to4をまず実行する

11行以下のチェックボックス5,6,7についても、同様にして一つずつ準備する。
「チェックボックスにより行の表示非表示」の回答画像1
    • good
    • 0
この回答へのお礼

またご回答いただきありがとうございました!

理想の動きができました!
まことにありがとうございました!

お礼日時:2014/06/03 10:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!