- ベストアンサー
エクセルのチェックボックスで行の表示を切り替える方法
- エクセルでチェックボックスを使用して行の表示を切り替える方法について教えてください。
- チェックボックス1のON-OFFで行11-20の表示を切り替える方法や、チェックボックス2のON-OFFで行10-19の表示を切り替える方法を教えてください。
- ActiveXのチェックボックスを使用してエクセルで行の表示を切り替える方法について詳しく教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
何をしたいのかというと? ご相談で書かれたこと: CB3をチェックしたとき, CB1にチェックの時は11-20を非表示に,offの時は10-20を非表示に CB2がチェックの時は10-19を非表示に,offの時は10-20を非表示に ご相談のそもそも問題点: 例えばCB1にチェックしても,CB2が非チェックなので最終的には10-20が非表示になってしまう。 あるいはCB1と2が両方チェックされてたらどうしたいの? 加えて >チェックボックス3のON-OFFで行10-20を非表示と表示に切り替え ONのとき隠すというご説明ですが,マクロは逆の動作になっている。 例えばの作成例: 10行目は,CB3がチェック,CB1がノーチェックのときに隠す 20行目は,CB3がチェック,CB2がノーチェックのときだけ隠す 11-19行はCB3がチェックで隠す private sub CheckBox3_Click() rows("10:10").hidden = checkbox3.value and not checkbox1.value rows("11:19").hidden = checkbox3.value rows("20:20").hidden = checkbox3.value and not checkbox2.value end sub チェックしたら隠すのか見せるのかなど,動作が意図と違う部分は自力で応用してみて下さい。
その他の回答 (1)
- satoron666
- ベストアンサー率28% (171/600)
単純に考えて、 Private Sub CheckBox1_Click() If CheckBox1 = True Then Range("11:20").EntireRow.Hidden = False Else Range("11:20").EntireRow.Hidden = True End If End Sub Private Sub CheckBox2_Click() If CheckBox2 = True Then Range("10:19").EntireRow.Hidden = False Else Range("10:19").EntireRow.Hidden = True End If End Sub Private Sub CheckBox3_Click() If CheckBox3 = True Then Range("10:20").EntireRow.Hidden = False Else Range("10:20").EntireRow.Hidden = True End If End Sub こういうことでしょうかね?
補足
すいません説明不足でした。 チェックボックス3のチェックを入れた時に チェックボックス1と2の状態を判別して非表示にする 行を変えたいと考えています。 よろしくお願いします。
お礼
回答ありがとうございます。 こういうやり方もあるのですね! とても参考になりました。