関数・メソッド

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

構文

Sheets.Visible = expression

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

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

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

名前説明
xlSheetHidden0対象の Sheets オブジェクトを非表示にします。(Falseと同義です)
xlSheetVeryHidden2対象の 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 <> True 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′: アプリケーション定義またはオブジェクト定義のエラーです。

関連記事

新しいワークシートを追加する【Addメソッド】【ExcelVBA】
ワークシートを削除する【Deleteメソッド】【ExcelVBA】

コメント

タイトルとURLをコピーしました