VBAでExcelのシートを非表示にさせたいときはないでしょうか。
けど、そんな中で悩むことは、
・複数シートや別ブックのシートを一括で非表示にしたいが方法がよくわからない
ですよね。
今回はそんなお悩みを解決する
・VBAで複数シートや別ブックのシートを一括で非表示にする方法
についてまとめます!
もくじ
VBAでExcelのシートを非表示にするイメージ
VBAでExcelのシートを非表示にするイメージについて説明をします。
指定した複数シートを一括で非表示にしたり、
![](https://extan.jp/wp-content/uploads/2022/04/041522_1450_2.png)
別ブックの複数シートを一括で非表示にしたりすることもできます。
![](https://extan.jp/wp-content/uploads/2022/04/041522_1450_4.png)
まとめてシートを非表示にしたいときは便利ですね。
早速実装して試してみましょう。
シートをいくつか作成する
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を右クリックし、「挿入」、「標準モジュール」を選択します。
![](https://extan.jp/wp-content/uploads/2019/05/050919_1542_VBAFunctio2.png)
③右ペインのウインドウに上記のVBAを入力します。
こちらで完了です。
VBAを実行する
では早速VBAの実行をしてみましょう。
①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。
②処理がされたことが確認できれば完了です。
さいごに
いかがでしょうか。
今回は、
・VBAで複数シートや別ブックのシートを一括で非表示にする方法
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す