【VBA】エクセルのシートを非表示にする【Visibleを使います】

嚯嚯go發表於2024-10-04

參考元:【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

相關文章