Excel VBA – シートの表示/非表示を切替
使用頻度はそんなに高くないけど、最近たまたま使うことがあってとても重宝したのでシェアしてみます。

Contents
シートの表示/非表示を切り替える
シートの表示/非表示を切り替えているのは、下記のコードです。
🙂Sheets(sh).Visible = True(False)
Visibleというプロパティが、シートの表示状態を司るものです。
2シート目以降を一括で表示/非表示
すべてのシートを非表示にはできずエラーになります。
なので2シート目以降ということにして、表示/非表示を切り替えます。
Sub shtVisible1()
Dim shtCnt As Long
Dim sh As Long
'※ シートの数
shtCnt = Sheets.Count
'※ 2シート目の状態で切り替え
If Sheets(2).Visible = True Then
For sh = 2 To shtCnt
Sheets(sh).Visible = False
Next sh
ElseIf Sheets(2).Visible = False Then
For sh = 2 To shtCnt
Sheets(sh).Visible = True
Next sh
End If
End Sub
2シート目の状態で切り替え
2シート目以降の状態はすべて同じにしますので、2シート目の状態で表示/非表示を切り替えます。
🙂If Sheets(2).Visible = True Then
上記のようにすると「2番目のシートが表示の場合」となって、その中に非表示にするコードを書く感じです。

指定したシートだけ表示/非表示を切り替える
配列に対象のシート番号を保存しておいて、そのシートだけを切り替えます。
Sub shtVisible()
Dim shtAry As Variant
Dim shtCnt As Long
Dim sh As Long
'※ 対象のシート番号
shtAry = Array(2, 4, 6)
shtCnt = UBound(shtAry)
'※ シートの状態で切り替え
If Sheets(shtAry(0)).Visible = True Then
For sh = 0 To shtCnt
Sheets(shtAry(sh)).Visible = False
Next sh
ElseIf Sheets(shtAry(0)).Visible = False Then
For sh = 0 To shtCnt
Sheets(shtAry(sh)).Visible = True
Next sh
End If
End Sub
対象のシート番号を配列に設定
shtAryという配列に、表示/非表示を切り替える対象のシート番号を代入しておきます。
🙂shtAry = Array(2, 4, 6)
シート名でも指定できるけど、コードが長くなって大変なのでシート番号にしました。

ショートカットに登録しておくと便利
リボンのメニューから、開発>マクロ>オプションと進むとショートカットを設定できます。

人が見てるときに実行するとものすごく驚かれる可能性があるので、使うときには少し注意が必要です。笑
今後の参考にさせていただきます。
ディスカッション
コメント一覧
まだ、コメントがありません