はじめに
シートを再表示出来ないように非表示設定する!
イミディエイトウィンドウとは、VBA(Visual Basic for Application)を利用する時に使うVBE(EXCELなどに付属しているプログラムの開発環境のエディター/Visual Basic Editor)で使用することができる機能で、主にコードの実行結果を試すなど、デバッグする時に使うものです。
イミディエイトウィンドウにVBAコードを書いて、一気に処理する方法を説明しています!
今回は、「シートを再表示出来ないように非表示設定する!」方法です。
↓イミディエイトウィンドウの立ち上げ方などはこちら
やり方
前提:シートを非表示にしてワークシートの再表示機能では表示出来ないようにする。
プルダウンのリストなどを別のシートに設定して、実際に使ってもらうときには見えないように非表示にすることってありますよね。それでもちょっとEXCEL分かってる人に渡すと、非表示を再表示させることは簡単です。
今回紹介するコードを使うことによって、ワークシート上の機能では再表示が出来ないように出来ますので、どうしても見せたくないシートがある場合、もう1段上の「シート隠し」をすることが可能になります。
※今回のコードを知ってる人は表示させることが出来てしまうので、絶対に見せてはいけないシートには使わないで下さいm(_ _)m
ワークシート上での非表示設定
【サンプル】メインのシートとプルダウンのリストが入力されているシートです。


通常ワークシート上でシートを非表示にする場合は、非表示にしたいシートのタグのところで右クリックをします。

出てきたメニューの「非表示」をクリックすると、シートは非表示になります。

ただし、これは出ているシートを再度右クリックしたメニューで「再表示」を押すとシートを表示させることが出来ます。

次のような画面が表示されるので、再度表示させたいシートを選んで「OK」を押します。

選んだシートが表示されて元に戻りました。

それでは、VBAコードで非表示設定してみましょう。
コード
ちゃんとしたコード
Sheets(“プルダウンリスト”).Visible = xlSheetVeryHidden
省略コード
sheets(“プルダウンリスト”).visible = 2
「Alt + F11」でVBEを開きます。イミディエイトウィンドウに上記のコードを入力して「Enter」で実行して下さい。

実行動画
結果画面です。

シートが非表示になりました。再度表示させようと、見えてるシートタブで右クリックしても、「再表示」ボタンがグレーアウトで押せないようになっています。
これで、VBAコードが分からない人には表示させることが出来ないように出来ました。
この状態から、シートを再表示させるには、次のVBAコードを実行します。
ちゃんとしたコード
Sheets(“プルダウンリスト”).Visible = xlSheetVisible
省略コード
sheets(“プルダウンリスト”).visible = -1
「=」の右側が変わっただけです。
やってみましょう。
実行動画
結果画面

無事に表示されましたね(^^)
このコードは、SheetオブジェクトのVisibleプロパティを変更することで、シートの状態を変えているコードになります。以下の表が、設定出来る値です。
定数 | 実際の値 | 意味 |
---|---|---|
xlSheetHidden | 0 | 非表示(ワークシートで設定したのと同じ) |
xlSheetVeryHidden | 2 | 非表示(VBAじゃないと再表示出来ない) |
xlSheetVisible | -1 | 表示 |
おまけ
ちなみに、VBE上のプロパティウィンドウでも設定出来ます(^o^)
VBEを開いて、設定したいシートオブジェクトを選択します。
選択したオブジェクト(画像では「Sheet1」)のプロパティウィンドウが表示されます。

「Visible」という項目がシートの表示・非表示を設定する場所です。
先程の表にある定数の選択肢がありますので、お好みに設定して下さい(^o^)
シートが1枚しか無いのに非表示にしようとすると、怒られるので注意☆
まとめ
ワークシートで出来ないことも、VBAコードなら出来るようになることがたくさんあります!
オススメの本
VBAはこの本きっかけだったな~
コメント