参考元:【VBA】エクセルのシートを非表示にする【Visibleを使います】
https://daitaideit.com/vba-sheet-hidden/
VBAでシートを非表示/表示する
シートを非表示
'シートを非表示
Sub TEST1()
'シート名「A」を非表示にする
Worksheets("A").Visible = False
End Sub
シートを表示
'シートを表示
Sub TEST2()
'シート名「A」を表示する
Worksheets("A").Visible = True
End Sub
VBAですべてのシートを表示
「For Each」を使う
'すべてのシートを表示
Sub TEST3()
Dim WS
'すべてのシートをループする
For Each WS In Worksheets
'シートを表示する
WS.Visible = True
Next
End Sub
VBAで指定シートのみを表示
シート名が「A」のシートだけを残して、それ以外を非表示にするVBAコードです。
'シート名「A」のみを表示
Sub TEST4()
Dim WS
'すべてのシートをループ
For Each WS In Worksheets
'シート名が「A」以外のとき
If WS.Name <> "A" Then
WS.Visible = False 'シートを非表示にする
End If
Next
End Sub
VBAで複数シートを非表示/表示する
複数シートを非表示
'シート「B」と「C」を表示
Sub TEST5()
Dim WS
'シート「B」と「C」をループ
For Each WS In Worksheets(Array("B", "C"))
WS.Visible = False 'シートを非表示
Next
End Sub
VBAで指定した複数シートのみを表示
手順としては、次のようになります。
指定シートの1つのみを表示
指定した複数シートを表示
「B」と「D」のシートのみを表示してみます。
'シート名「B」と「D」のみを表示
Sub TEST7()
Dim A
'表示するシート名の配列を作成
A = Array("B", "D")
Dim WS
'シート名「B」のみを表示する
For Each WS In Worksheets
'シート名が「B」以外のとき
If WS.Name <> A(0) Then
WS.Visible = False 'シートを非表示にする
End If
Next
'シート名「B」と「D」を表示する
For Each WS In Worksheets(A)
WS.Visible = True 'シートを表示
Next
End Sub