シートの表示と非表示を切り替える方法

今回の目標

「シートの表示・非表示を切り替えたい!」や「設定データを隠し持つことはできないの?」と疑問を持ったあなたへ。
この記事では、Visibleプロパティを理解して、3つの定数を使い分けられるようになることが目標です。 シートの表示・非表示の切り替えについて丁寧に解説します!

目標リスト

  • シートオブジェクトの Visible プロパティを知る
  • シートの表示・非表示を切り替えられるようになる
  • 完全非表示(xlSheetVeryHidden)を理解する

シートの表示と非表示について

Worksheet.Visible プロパティ について

Worksheet オブジェクトの Visible プロパティに定数を代入することによって、シートの表示・非表示を切り替えられます。

定数一覧

Worksheet.Visible プロパティで使用する定数です。

定数説明
xlSheetVisible-1シートを表示する
xlSheetHidden0シートを非表示する
xlSheetVeryHidden2シートを完全に非表示する

プロパティをTrue/Falseで設定する

VBAでは、True を数値化すると -1False は 0 のため、
「Worksheet.Visible = True」と「Worksheet.Visible = xlSheetVisible」は同じ結果になります。 同様に、「Worksheet.Visible = False」と「Worksheet.Visible = xlSheetHidden」と同じ結果になります。
なお、「VeryHidden」を指定したい場合は、定数を指定する必要があります。

xlSheetVeryHiddenについて

シートを完全に非表示にします。 「通常の非表示(xlSheetHidden)」と違い、Excelの画面から[シート見出しを右クリック → 再表示]では再表示できません。 再表示するには、VBAマクロ または VBE で、Visible プロパティを変更する必要があります。
なお、「非表示(xlSheetHidden)」の状態から、プロパティを『xlSheetVeryHidden』に変更すると、画面の見た目は変わりませんが、Excel画面からの再表示が出来なくなります。

見かけ上、存在しないように扱われますが、データは保持しているため、入力規則等の触られたくない重要な設定データを隠して保存する場合に使用されます

xlSheetVeryHidden で、非表示にしたサンプル画像です。
xlUp の説明画像

シートを表示する(xlSheetVisible)

非表示のシートオブジェクトの Visible プロパティに、xlSheetVisible または True を代入すると、シートを表示させることが出来ます。

サンプルコード

Sub SampleVisible1()
    'シート「Sheet2」を表示する
    Worksheets("Sheet2").Visible = xlSheetVisible
End Sub
【実行結果】

※ Sheet2が非表示の場合、表示されます。
  Sheet2が存在しない場合、実行時エラーになります。

シートを非表示にする(xlSheetHidden)

シートオブジェクトの Visible プロパティに、xlSheetHidden または False を代入すると、シートを非表示にすることが出来ます。
この方法でシートを非表示にした場合、Excelの画面から[シート見出しを右クリック → 再表示]で、シートを表示することが出来ます。
なお、対象のシートが「xlSheetVeryHidden」だった場合、通常の非表示に変更されます(ユーザー操作で再表示可能)。

サンプルコード

Sub SampleVisible2()
    'シート「Sheet2」を通常の非表示にする
    Worksheets("Sheet2").Visible = xlSheetHidden
End Sub
【実行結果】

Sheet2が非表示になります。
※ Sheet2が存在しない場合、実行時エラーになります。

シートを完全に非表示にする(xlSheetVeryHidden)

シートオブジェクトの Visible プロパティに、xlSheetVeryHidden を代入すると、シートを完全に非表示にすることが出来ます。 この方法でシートを非表示にした場合、Excelの画面から[シート見出しを右クリック → 再表示]で、シートを表示することが出来ません。
Visible プロパティに、xlSheetVisible または True を代入することで、シートを表示させることが出来ます。

サンプルコード

Sub SampleVisible3()
    'シート「Sheet2」を完全に非表示にする(ユーザー操作では再表示不可)
    ' ※Excelの画面からは再表示できず、マクロやVBEから再表示可能
    Worksheets("Sheet2").Visible = xlSheetVeryHidden
End Sub
【実行結果】

Sheet2を完全に非表示にします。
※ Sheet2が存在しない場合、実行時エラーになります。

プロパティのまとめ

Visible プロパティ に代入したときの処理について、まとめました。

定数状態ユーザーが再表示マクロで再表示
xlSheetVisible-1表示する--
xlSheetHidden0非表示にする可能可能
xlSheetVeryHidden2完全に非表示にする不可可能

関連リンク

ページの先頭へ