エクセルを開くと自動的にシートを非表示にする方法

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

シート名を変更されてマクロエラーになった経験ありませんか?

そんな時シートを勝手に操作できないようにしたいと思ったことありませんか?

スポンサーリンク

シートを隠して意図しないユーザー操作を防止

エクセル住所録や成績表などをユーザーフォームを使ってデータ入力を行う事により、集計や検索を自動化して「早く」「正確に」「簡単に」できるようになりますよね。

こんなトラブルに見舞われて事ありませんか?

ゲスト
ゲスト

マクロエラーになってエクセル動きません!

VBAコードは問題なし、どうやらユーザーフォームの操作ではなく、シートを直接選択していたようなので、本来表示されるはずのフォームが出なくて先に進まなくなったようでした。

さらに最悪な事もありました。

VBAコードにはシートを指定して作動させるプログラムがありますが・・・

<span class="fz-12px">とりっぷぼうる</span>
とりっぷぼうる

シート名を変更されるなんて想定外!

スタッフに言ってみたが、「そんなこと言われても」・・・って感じでした。

どうにかしなくては・・・

<span class="fz-12px">とりっぷぼうる</span>
とりっぷぼうる

シート自体を非表示にしてしまえばそんな心配も解消できる!!

イメージはこんな感じです!

シート表示
シート表示されている通常の状態

シートを隠したい!

シート非表示
シート非表示にできた

こうなれば、触りたくても触れないので安心。

DisplayWorkbookTabs

上の図のようにシート自体の表示を消してしまうには、DisplayWorkbookTabsを使います。

ユーザーフォームに配置したコマンドボタンにシート非表示のコードを書くとこうなります。

シート非表示

Private Sub CommandButton1_Click()
ActiveWindow.DisplayWorkbookTabs = False
End Sub

VBA解説
  1. コマンドボタン1が押されたら
  2. 表示中のシート名を非表示にする
  3. マクロ終了

シートを表示するには、FalseをTrueに変えるだけです。

エクセルを開いたときに自動的にシートを非表示

いちいちボタンで操作しないで、エクセルを開くと同時に処理をすることも可能です。

その場合コマンドボタンにVBAコードを書かずに、ThisWorkBookに記述します。

エクセル開くと同時にシート非表示

Private Sub Workbook_open()
ActiveWindow.DisplayWorkbookTabs = False
End Sub

これで、エクセルを開いてマクロを有効化すると、シートを隠して表示してくれます。

念の為に、ワークシート上かユーザーフォームにシートを再表示する為のコードを記述したコマンドボタンを準備しておく事も必要ですよ!

シートの保護関連VBAコード
とりっぷぼうる
とりっぷぼうる

シートを非表示できたので、ついでにエクセル画面の上部にある様々なコントロール部分(リボンツールバー)も触れないように消すこともできますし、ほかにも非表示にできるワザがありますよ!

スポンサーリンク

ウィンドウの操作関連

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

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