VBAでExcelのシートを非表示にさせたいときはないでしょうか。
けど、そんな中で悩むことは、
・複数シートや別ブックのシートを一括で非表示にしたいが方法がよくわからない
ですよね。
今回はそんなお悩みを解決する
・VBAで複数シートや別ブックのシートを一括で非表示にする方法
についてまとめます!
もくじ
VBAでExcelのシートを非表示にするイメージ
VBAでExcelのシートを非表示にするイメージについて説明をします。
指定した複数シートを一括で非表示にしたり、

別ブックの複数シートを一括で非表示にしたりすることもできます。

まとめてシートを非表示にしたいときは便利ですね。
早速実装して試してみましょう。
シートをいくつか作成する
Excelブックのシートをいくつか作成しましょう。
サンプルでは5つのシートを用意しました。
VBAで複数のシートを一括で非表示にする
VBAで複数のシートを一括で非表示にする方法について説明をします。
今回は”Sheet2″、”Sheet3″、 “Sheet4″、 “Sheet5″シートを非表示にしていきます。
VBAコード
VBAは以下の通りです。
Sub 複数のシートを非表示にする()
Dim objSheets As Sheets
Dim objSheet As Object
'非表示にしたいシート名を指定します。
Set objSheets = Sheets(Array("Sheet2", "Sheet3", "Sheet4", "Sheet5"))
'Sheetsコレクションからシートオブジェクトを取得します。
For Each objSheet In objSheets
'該当シートを非表示にします。
objSheet.Visible = False
Next
'オブジェクトを解放します。
Set objSheets = Nothing
Set objSheet = Nothing
End Sub
VBAの設定
非表示にしたいシート名を指定します。シートの数を増やしたい場合は「, “<シート名>”」の形式で追加してください。
Set objSheets = Sheets(Array("Sheet2", "Sheet3", "Sheet4", "Sheet5"))
VBAの実装
VBAの実装方法については
VBAの実装手順
をご参照ください。
VBAを実行
VBAを実行しましょう。
はい、指定したシートが非表示になりましたね。
VBAの説明
VBAについて説明をします。
Sheetsコレクションには指定したブックのシートオブジェクトすべてが含まれています。そこからシートオブジェクトを取得しVisible プロパティをFALSEにすることによりシートを非表示にさせていきます。
Sheetsコレクションからシートオブジェクトを取得します。
For Each objSheet In objSheets
該当シートを非表示にします。
objSheet.Visible = False
オブジェクトを解放します。
Set objSheets = Nothing Set objSheet = Nothing
VBAで別ブックの複数のシートを一括で非表示にする
次は別ブックの複数のシートを一括で非表示にするようにしていきましょう。
シートをいくつか非表示にしたブックを用意し、格納先のパスをメモしておきます。
非表示にするシートは”Sheet2″、”Sheet3″、 “Sheet4″です。
VBAコード
VBAは以下の通りです。
Sub 別ブックの複数のシートを非表示にする()
Dim objSheets As Sheets
Dim objSheet As Object
Dim objWb As Workbook
'ブックファイルのパスを指定します。
Set objWb = Workbooks.Open("F:\test\他ブック.xlsx")
'非表示にしたいシート名を指定します。
Set objSheets = objWb.Sheets(Array("Sheet2", "Sheet3", "Sheet4"))
'Sheetsコレクションからシートオブジェクトを取得します。
For Each objSheet In objSheets
'該当シートを非表示にします。
objSheet.Visible = False
Next
'オブジェクトを解放します。
Set objSheets = Nothing
Set objSheet = Nothing
Set objWb = Nothing
End Sub
VBAを設定する
VBAを設定していきましょう。
ブックファイルのパスを指定します。
Set objWb = Workbooks.Open("F:\test\他ブック.xlsx")
非表示にしたいシート名を指定します。
Set objSheets = objWb.Sheets(Array("Sheet2", "Sheet3", "Sheet4"))
VBAを実行
VBAを実行しましょう。
はい、指定ブック内すべてのシートが非表示になりましたね。
VBAの説明
VBAについて説明をします。
ブックファイルのパスを指定します。
Set objWb = Workbooks.Open("F:\test\他ブック.xlsx")
非表示にしたいシート名を指定します。
Set objSheets = objWb.Sheets(Array("Sheet2", "Sheet3", "Sheet4"))
Sheetsコレクションからシートオブジェクトを取得します。
For Each objSheet In objSheets
該当シートを非表示にします。
objSheet.Visible = False
VBAの実装手順
実装手順は以下の通りです。
Excel側にVBAを実装していきます。
①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。
②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。
こちらで完了です。
VBAを実行する
では早速VBAの実行をしてみましょう。
①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。
②処理がされたことが確認できれば完了です。
さいごに
いかがでしょうか。
今回は、
・VBAで複数シートや別ブックのシートを一括で非表示にする方法
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す