HOME > 即効テクニック > Excel VBA > シート操作関連のテクニック > シートの表示/非表示を設定する(Visibleプロパティ)

シートの表示/非表示を設定する(Visibleプロパティ)|Excel VBA

シート操作関連のテクニック

シートの表示/非表示を設定する(Visibleプロパティ)

(Excel 2000/2002/2003/2007/2010)

各シートの表示/非表示は、Visibleプロパティの設定により切り替えることができます。
Trueでシートを表示、Falseでシートを非表示にします。なお、全てのシートを非表示にすることはできません。

構文 Object.Visible 取得/設定

設定項目 内容
Object Worksheet,Chart,Worksheetsオブジェクトコレクション,Sheetsコレクションオブジェクト,Chartsコレクションオブジェクト

次のサンプル1はVisibleプロパティの値を反転させることで、シートの表示と非表示を切り替えます。

●サンプル1●

Sub Sample1()
    With Sheets(1)                  '---1枚目のシートを対象
        .Visible = Not .Visible     '---表示/非表示を切り替え
    End With
End Sub

TrueとFalseの値を使用するプロパティでは、このような記述で値の切り替えができるので、覚えておくと便利です。

また、定数xlVeryHiddenを設定した場合には、マクロかVBEのプロパティウィンドウでVisibleプロパティの値を変更しない限り、ユーザーの操作でシートを再表示することはできなくなります。

●サンプル2●

Sub Sample2()
    Dim i As Integer
    For i = 2 To 5
        Sheets(i).Visible = xlSheetVeryHidden   '---ユーザーからは全く見えない
    Next i
End Sub

このサンプルは、ユーザーに変更を加えられたくない2枚目から5枚目のシートを、Excelの画面からは完全に非表示にして隠しています。

ユーザーに見せたくないシートのVisibleプロパティに定数xlVeryHiddenを設定し、コードをパスワードで保護しても、イミディエイトウィンドウで「Sheets(2).Visible=True」と実行することでシートの内容を見られてしまいます。

そういった場合には、見られたくないシートがアクティブになったときに非表示する処理を走らせることで対応します。見られたくないシートのシートモジュールに、次のようなイベントプロシージャを記述してください。

●サンプル3●

Private Sub Worksheet_Activate()
    Sheets("Sheet2").Visible = xlVeryHidden
End Sub