
エクセルのシートを隠したり表示するボタンを作る

VBAコードが入ったエクセル住所録や成績表などのExcelファイルを、他人へ渡したりみんなで共有して使用する時、触られたらエラーの原因になるので触れてほしくないですよね。
また、商品価格の仕入れ原価シートだけなどは見られたくないですよね。
このページではユーザーフォームに配置したコマンドボタンに、「シート全体を表示・非表示する」方法と、「指定したシートのみ表示・非表示する」方法の2つを書いていきます。
シート全体を表示・非表示する
シートを保護する・保護解除をするそれぞれ個別の方法は、【シートの保護状態でもVBAでセル操作する方法】で記載しているので、ここでは省略します。

このページではコマンドボタン1つに「シート全体を表示・非表示する」VBAコードを書くことにより、スイッチのオン・オフのような操作ができるようにします。
Private Sub CommandButton1_Click()
With ActiveWindow
.DisplayWorkbookTabs = Not .DisplayWorkbookTabs
End With
End Sub
- コマンドボタン1が押されたら
- 表示中のエクセルファイルでの操作
- シートの見出し表示を現在の状態と反対の設定にする
- Withステートメント終了
- マクロ終了
3行目の「シートの見出しを現在の状態と反対の設定」が、表示中ならば非表示にして、非表示状態ならば表示するということになります。
指定したシートのみ表示・非表示する
今度は、コマンドボタン1つに「指定したシートのみ表示・非表示する」VBAコードを書くことにより、スイッチのオン・オフのような操作ができるようにします。
Private Sub CommandButton2_Click()
With Worksheets(“sheet1”)
.Visible = Not .Visible
End With
End Sub
- コマンドボタン1が押されたら
- シート名「sheet1」を指定
- 指定したシート表示を現在の状態と反対の設定にする
- Withステートメント終了
- マクロ終了
これで、シート名「sheet1」を表示したり非表示にすることができるようになりました。
シートの非表示は自動的に設定しておいて、必要な時に表示する使用方法の方が多いと思います。
ウィンドウの操作関連
シートの非表示以外にもいくつか利用しているのでご紹介します。
- 行番号・列番号を非表示にする
- セルの枠線(グリッド線)を非表示にする
- 左右スクロールバーを非表示にする
- 上下スクロールバーを非表示にする
- ゼロ「0」の値を空欄にする
- 数式バーを非表示にする
- ステータスバーを非表示にする
- ウィンドウを非表示にする
- エクセル開くと同時にsheet(シート)を非表示にする
- メニューバー(リボンツールバー)を非表示にする方法
ボタン1つで表示を切り替えたり元に戻したりできると便利なので、ほかの表示方法も知っていて損はないと思いますよ!