ちょっと使っているツールに組み込みできないかなと思い、ちょっと検証してみる。
0.実現させたこと
ある特定のセル(例えば、A1セル)に「aiueo」という値が入っていた場合に、6行目の行を非表示化、ない場合は表示させるようにVBAを組み込みたい。
できれば、動的になるようにしたいが、とりあえず贅沢言わずにその動作ができるかどうかに注力する。
1.使うコマンド(関数)
下記のコマンド(関数)で実現することができそうな感じ。
★例)2行目を非表示
Rows(2).Hidden = True
★例)セルを指定して、そのセルがある行を非表示
Range("A1").EntireRow.Hidden = True
再度、表示したい場合はパラメータを false
にする。
2.やってみる
試してみたいことは、
黄色に塗りつぶしている行と列を非表示・表示させること。
コードを書いてみる。
Sub sample_001()
'7〜10行目を表示
Rows("7:10").Hidden = False
'Q〜U列を表示
Columns("Q:U").Hidden = False
End Sub
Sub sample_002()
'7〜10行目を表示
Rows("7:10").Hidden = True
'Q〜U列を表示
Columns("Q:U").Hidden = True
End Sub
動作確認ができたので、今度はA1セルに「aiueo」がある場合に非表示、ない場合に表示になるようにコードを書いてみる
Sub sample_003()
'変数定義
a1 = Range("A1").Value
a2 = "aiueo"
'A1セルの値によって表示制御
If a1 = a2 Then
Rows("7:10").Hidden = True
Columns("Q:U").Hidden = True
Else
Rows("7:10").Hidden = False
Columns("Q:U").Hidden = False
End If
End Sub