【VBA】ワークシート表示/非表示を切り替える

こんにちは、Ryoです。
VBAで処理する都合上、設定用のワークシートを作ることもあるかと思いますが、このシートはユーザーに触れてほしくない部分ですから保護したいですよね。
そんな時に使えそうなのがワークシート表示/非表示の切替えですが、指定によってはExcel上の操作から再表示させないことも出来ますので、今回はその方法について書いてみます。



1.サンプル概要

以下画像に示すようにSheet1、Sheet2、Sheet3があるとします。

この中で「Sheet2」を非表示にする処理を行うと。。。

非表示になりますが、Excel上の操作で再表示させることが出来ます。

ですが、Excel上の操作で再表示させないように処理した場合は、再表示自体が選択不可となり、再表示する為にはVBAで処理しない限り不可となります。

今回はこの方法について以下にサンプルコードを紹介していきます。

2.サンプルコード

◆Excel上の操作で再表示可能とする場合

Sub Sample1()

  'Sheet2を非表示にする(Excel上の操作で再表示可)
  Worksheets("Sheet2").Visible = xlSheetHidden

End Sub

ワークシートの表示/非表示を設定するには、Visibleプロパティを使います。

オブジェクト.Visible = 定数

この定数には以下が設定でき、表示や非表示を指定、切替など行います。

xlSheetHidden・・・非表示(Excel上の操作が可能)、値:0

xlSheetVeryHidden・・・非表示(Excel上での操作は不可能)、値:2

xlSheetVisible・・・表示、値:-1

この定数には値を設定しても良いので、上述サンプルであれば

Worksheets(“Sheet2”).Visible = 0

これでもOKです。

◆Excel上の操作不可とする場合

Sub Sample2()

  'Sheet2を非表示にしExcel上の操作でも再表示不可
  Worksheets("Sheet2").Visible = xlSheetVeryHidden

End Sub

上述した通り、xlSheetVeryHidden(又は2)を指定することでExcel上での再表示操作は不可となります。再表示するにはVBAで処理する必要があります。

◆VBAでシートを再表示する場合

Sub Sample3()

'xlSheetVeryHiddenで非表示にした場合はVBAで以下の様に
'xlSheetVisibleで戻す
 Worksheets("Sheet2").Visible = xlSheetVisible

End Sub

xlSheetVeryHiddenを使って非表示としたシートを再表示する為には、このようにxlSheetVisible で表示する処理を行わない限り、表示されません。

3.まとめ

ワークシートを非表示にしたい場合とは即ちユーザーに触れてほしくないということと思いますので、おそらくxlSheetVeryHiddenを用いることが多いのではないでしょうか。
この場合、Excelから再表示することは出来ませんし、Excel画面から非表示となっていることもわかりませんので、保護目的であれば非常に有用な手段だと思います。
機会があれば検討されてみると良いかもしれませんね。




以上、ワークシート表示/非表示を切り替える方法についてでした!
今回の記事が何かの参考になれば幸いです。

Ryo

スポンサーリンク
スポンサーリンク

楽天トラベル

シェアする

フォローする

スポンサーリンク

楽天トラベル