「xlVeryHidden, xlSheetVeryHidden、違い」
「excel SheetHidden xlSheetVeryHidden 違い」
といった検索キーワードで時折アクセスがあります。
Excel VBAでシートを非表示にする際に指定できる、XlSheetVisibility列挙型に定義されている定数には、
xlSheetHidden(直値:0)
xlSheetVeryHidden(直値:2)
の2つがあります。
この2つは、何が違うのかを調べていらしたのでしょう。
xlSheetVeryHiddenとxlSheetHiddenの違いを確認する
簡単なコードを実行して確認しましょう。
ワークシートが3枚存在するブックがアクティブな状態で、以下のSubプロシージャを実行してください。
Worksheets(1).Visible = xlSheetHidden
Worksheets(2).Visible = xlSheetVeryHidden
End Sub
「Worksheets(1)」で取得した1枚目と、「Worksheets(2)」で取得した2枚目のワークシートが、非表示に設定されます。
つづいて、Excelのシート見出し上で右クリックして表示されるショートカットメニューから[再表示]を選択して、[再表示]ダイアログボックスを表示してください。
そこには、
Worksheets(1).Visible = xlSheetHidden
で非表示に設定されたワークシートの名前は表示されているものの、
Worksheets(2).Visible = xlSheetVeryHidden
で非表示にしたワークシートの名前は表示されていないはずです。
上図は、1枚目のワークシートが「Sheet1」2枚目が「Sheet2」で、先述のSubプロシージャを実行した後の様子です。
xlSheetVeryHiddenなら人間が再表示できない非表示シートに
つまり、Worksheet.Visibleプロパティに定数xlSheetHiddenを設定した場合は、Excel上で人間が操作して再表示できる非表示シートになります。
一方、xlSheetVeryHiddenを設定すると、Excelでは再表示できない非表示シートになります。
全ワークシートを再表示する
VBAで再表示する場合には、xlSheetHiddenでもxlSheetVeryHiddenでも同じです。
Dim ws As Worksheet
For Each ws In Worksheets
ws.Visible = xlSheetVisible
Next
End Sub
上記のようにWorksheet.Visibleプロパティに定数xlSheetVisible(直値:-1)を指定すれば、xlSheetHiddenで非表示にしたシートも、xlSheetVeryHiddenで非表示にしたシートも再表示されます。
こういった処理で、「もし非表示だったら」といったIf文を入れようとする方が時々いらっしゃいますが、わざわざ条件分岐させる必要はありません。
最終更新日時:2022-06-15 16:04
- Newer:値が最大のデータ要素をVBAで選択する
- Older:VBAで系列名を変更する-Series.Nameプロパティ
Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » xlSheetVeryHiddenとxlSheetHiddenの違い