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

シートの操作

VBAコードが入ったエクセル住所録や成績表などのExcelファイルを、他人へ渡したりみんなで共有して使用する時、触られたらエラーの原因になるので触れてほしくないですよね。

また、商品価格の仕入れ原価シートだけなどは見られたくないですよね。

このページではユーザーフォームに配置したコマンドボタンに、「シート全体を表示・非表示する」方法と、「指定したシートのみ表示・非表示する」方法の2つを書いていきます。

目次

シート全体を表示・非表示する

シートを保護する・保護解除をするそれぞれ個別の方法は、【シートの保護状態でもVBAでセル操作する方法】で記載しているので、ここでは省略します。

あわせて読みたい
エクセルVBAを使ってシートの保護状態時にセルへの入力エラーを防ぐ方法 エクセルで作った住所録や成績表などで誤って計算式が消されないようにシートの保護設定をしている時に、テキストボックスから入力したらエラーになった経験ありません...

このページではコマンドボタン1つに「シート全体を表示・非表示する」VBAコードを書くことにより、スイッチのオン・オフのような操作ができるようにします。

シート表示

シート表示

シート非表示

シート非表示

シート全体を表示・非表示するVBA

Private Sub CommandButton1_Click()
With ActiveWindow
.DisplayWorkbookTabs = Not .DisplayWorkbookTabs
End With
End Sub

VBA解説
  1. コマンドボタン1が押されたら
  2. 表示中のエクセルファイルでの操作
  3. シートの見出し表示を現在の状態と反対の設定にする
  4. Withステートメント終了
  5. マクロ終了

3行目の「シートの見出しを現在の状態と反対の設定」が、表示中ならば非表示にして、非表示状態ならば表示するということになります。

指定したシートのみ表示・非表示する

今度は、コマンドボタン1つに「指定したシートのみ表示・非表示する」VBAコードを書くことにより、スイッチのオン・オフのような操作ができるようにします。

指定したシートのみ表示・非表示するVBA

Private Sub CommandButton2_Click()
With Worksheets(“sheet1”)
.Visible = Not .Visible
End With
End Sub

VBA解説
  1. コマンドボタン1が押されたら
  2. シート名「sheet1」を指定
  3. 指定したシート表示を現在の状態と反対の設定にする
  4. Withステートメント終了
  5. マクロ終了

これで、シート名「sheet1」を表示したり非表示にすることができるようになりました。

シート表示

シート表示

指定シート非表示

指定シート非表示

シートの非表示は自動的に設定しておいて、必要な時に表示する使用方法の方が多いと思います。

ウィンドウの操作関連

シートの非表示以外にもいくつか利用しているのでご紹介します。

ボタン1つで表示を切り替えたり元に戻したりできると便利なので、ほかの表示方法も知っていて損はないと思いますよ!

目次