シート名を変更されてマクロエラーになった経験ありませんか?
そんな時シートを勝手に操作できないようにしたいと思ったことありませんか?
シートを隠して意図しないユーザー操作を防止
エクセル住所録や成績表などをユーザーフォームを使ってデータ入力を行う事により、集計や検索を自動化して「早く」「正確に」「簡単に」できるようになりますよね。
こんなトラブルに見舞われて事ありませんか?

マクロエラーになってエクセル動きません!
VBAコードは問題なし、どうやらユーザーフォームの操作ではなく、シートを直接選択していたようなので、本来表示されるはずのフォームが出なくて先に進まなくなったようでした。
さらに最悪な事もありました。
VBAコードにはシートを指定して作動させるプログラムがありますが・・・

シート名を変更されるなんて想定外!
スタッフに言ってみたが、「そんなこと言われても」・・・って感じでした。
どうにかしなくては・・・

シート自体を非表示にしてしまえばそんな心配も解消できる!!
イメージはこんな感じです!

シートを隠したい!

こうなれば、触りたくても触れないので安心。
DisplayWorkbookTabs
上の図のようにシート自体の表示を消してしまうには、DisplayWorkbookTabsを使います。
ユーザーフォームに配置したコマンドボタンにシート非表示のコードを書くとこうなります。
Private Sub CommandButton1_Click()
ActiveWindow.DisplayWorkbookTabs = False
End Sub
- コマンドボタン1が押されたら
- 表示中のシート名を非表示にする
- マクロ終了
シートを表示するには、FalseをTrueに変えるだけです。
エクセルを開いたときに自動的にシートを非表示
いちいちボタンで操作しないで、エクセルを開くと同時に処理をすることも可能です。
その場合コマンドボタンにVBAコードを書かずに、ThisWorkBookに記述します。
Private Sub Workbook_open()
ActiveWindow.DisplayWorkbookTabs = False
End Sub
これで、エクセルを開いてマクロを有効化すると、シートを隠して表示してくれます。
念の為に、ワークシート上かユーザーフォームにシートを再表示する為のコードを記述したコマンドボタンを準備しておく事も必要ですよ!
- シートの保護状態からセル操作(保護の基本)
- 計算式を隠してシートの保護をする
- 指定範囲以外への移動・選択・操作不能にする
- 一部のセルだけ入力可能にしてシートを保護する
- シートが保護のエラー回避
- エクセル開くと自動的に左下のシート名を非表示する

シートを非表示できたので、ついでにエクセル画面の上部にある様々なコントロール部分(リボンツールバー)も触れないように消すこともできますし、ほかにも非表示にできるワザがありますよ!
ウィンドウの操作関連
シートの表示/非表示以外にもいくつか利用しているのでご紹介します。
- リボンツールバーを非表示にする
- 行番号と列番号を非表示にする
- セルの枠線(グリッド線)を非表示にする
- 左右スクロールバーを非表示にする
- 上下スクロールバーを非表示にする
- ゼロ「0」の値を空欄にする
- 数式バーを非表示にする
- ステータスバーを非表示にする
- ウィンドウを非表示にする
- 指定したシートだけや全てのシートをを非表示にする
ボタン1つで表示を切り替えたり元に戻したりできると便利なので、ほかの表示方法も知っていて損はないと思いますよ!