んと。。。
非表示になっている特定の行を再表示
既にマクロ実行時に決まっているなら、
日本語でちゃんと説明してください。
それから、
エクセルには、チェックボックスというものが、
1)シート上のフォームコントロールのチェックボックス
2)シート上のActiveXコントロールのチェックボックス
3)ユーザーフォーム上のActiveXコントロールのチェックボックス
とあるので、どのチェックボックスなのかを明示してください。
他にもセルにチェックボックスに見える文字を入力して、
それっぽく見せる方法もあるので、やりたいことと、
自分の技量と見映えのバランスでどれを使うか選ぶといいと思います。
いまの質問文を読むと、シート上のActiveXコントロールのチェックボックスを使うのがよさそうな気がします。
ActiveXコントロールのチェックボックスを配置した
シートのモジュールに以下を記入してチェックボックスを操作してみてください。
VBA
1Option Explicit
2
3Private Sub CheckBox1_Click()
4 Application.ScreenUpdating = False
5
6 With Me
7 .Rows("27:31").Hidden = False
8
9 If .CheckBox1.Value Then
10 .Rows("27,31").Hidden = True
11 Else
12 .Rows("28:30").Hidden = True
13 End If
14
15 .Range("B6:C6").Select
16 End With
17End Sub
18
昨日書いた後、帰宅中に車の中で思いつきました。
「チェックボックスの状態で行の表示・非表示を切り替える」のだから、
行毎に「その時の状態」を操作すればいいんじゃないかなと。
Option Explicit
VBA
1Private Sub CheckBox1_Click()
2 Dim flg As Boolean
3
4 flg = Me.CheckBox1.Value
5
6 With Me.Rows
7 .Item(27).Hidden = Not flg
8 .Item(28).Hidden = flg
9 .Item(29).Hidden = flg
10 .Item(30).Hidden = flg
11 .Item(31).Hidden = Not flg
12 End With
13End Sub
チェックボックスの値も、
行の表示・非表示もTrueかそうでなければFalseなので、
「チェックボックスがTrueならば、27行目は表示」としたければ、
表示の状態は、「チェックボックスの値ではない値(= Not True)」と表現できますね。
こっちの方が後で見て、読みやすい(=可読性が高い)のではないかなと思います。
演算子について
VBAのIf文でNot条件を指定する
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。