関数・メソッド

ワークシートの表示/非表示の切り替え【Visibleプロパティ】【ExcelVBA】

構文

Sheets.Visible = expression

expression・・・True:表示する、False:非表示にする、もしくはxlVeryHidden (下記参照)
ワークシートの表示と非表示を切り替えるには、Sheets オブジェクトの Visible プロパティです。
Visible プロパティに True を設定すると対象の Sheets オブジェクトが表示され、False で非表示です。

また下表の xlVeryHidden を設定することで完全に非表示な状態に設定可能です。
完全に非表示な状態とは、ユーザ操作で書式メニューから「再表示」が出来ません。
プログラム側で自由に使用が出来るユーザが操作できないシートを作成可能です。

Visibleプロパティ定数一覧(XlSheetVisibility 列挙型)

名前 説明
xlSheetHidden 0 対象の Sheets オブジェクトを非表示にします。(Falseと同義です)
xlSheetVeryHidden 2 対象の Sheets オブジェクトを完全に非表示な状態にします。 xlSheetVisible を設定しない限り、オブジェクトは表示されません。 また、ユーザ側でオブジェクトを操作することは出来ません。
xlSheetVisible -1 対象の Sheets オブジェクトを表示します。(Trueと同義です)

ワークシートの表示・非表示を変更するコードサンプル

Public Sub sample()

    '■アクティブシートを非表示にする
    ActiveSheet.Visible = False

    '■指定シートを表示する
    Worksheets("Sheet1").Visible = True

    '■非表示シートを全て表示する
    Dim ws As Worksheet
    For Each ws In Worksheets
        If ws.Visible = False Then
            ws.Visible = True
        End If
    Next ws

    '■一時的な計算シート作成し、処理終了時にシート削除する 
    Dim ws As Worksheet
    Set ws = Worksheets.Add
    ws.Visible = xlSheetVeryHidden

    'xlSheetVeryHidden の追加シートを削除
    Application.DisplayAlerts = False
    ws.Visible = xlSheetHidden 'xlSheetVeryHidden ではDelete不可
    ws.Delete
    Application.DisplayAlerts = True

End Sub

注意点

  • ブック上から全てのワークシートを非表示にすることはできません。
  • Visibleプロパティに False を設定してすべてのワークシートが非表示になる場合はエラーが発生します。
    実行時エラー’1004′: アプリケーション定義またはオブジェクト定義のエラーです。
  • xlSheetVeryHidden 定数を設定しているシートに対してはDeleteメソッドで削除できません。 削除しようとすると、エラーが発生します。
    実行時エラー’1004′: アプリケーション定義またはオブジェクト定義のエラーです。

関連記事

コメント