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

シートの操作 シートの操作

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

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

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

スポンサーリンク

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

シートを保護する・保護解除をするそれぞれ個別の方法は、【シートの保護状態でも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つで表示を切り替えたり元に戻したりできると便利なので、ほかの表示方法も知っていて損はないと思いますよ!