エクセルワークシート下にあるシート名の部分を非表示化する方法

苦労してExcel-VBAを組み込んだエクセルファイルを他人に渡して使ってもらうと、エラー表示になったと言われたことありませんか?
原因は簡単で、エクセル操作をオリジナル入力画面のユーザーフォームを使用して、全ての操作を行うようにしていますが、何らかの理由でワークシートの下にあるシート名を変更されたり、直接シート変遷をされることが原因です。
解決方法は簡単で、シート名表示欄を自動的に非表示にしてしまうVBAコードを組み込んでおくだけで解決しますのでご紹介いたします。
DisplayWorkbookTabsでシートを非表示化へ
エクセル通常ワークシートは、下記のようにシートがいくつか用意されて自由にシートを変遷することができます。

このままでは当たり前ですが、シート名の部分をクリックするとシート名の変更やシートの移動が自由に出来てしまいます。

こうなれば、意図しない操作ができなくなるので作成したユーザーフォームからの操作のみ、またはワークシート上に配置したコマンドボタンからの操作しかできなくなります。
VBAで自動処理
方法は簡単で、エクセルファイルを開くと自動的にシートを非表示にすることができる、 DisplayWorkbookTabs を使用します。
Private Sub Workbook_open()
ActiveWindow.DisplayWorkbookTabs = False
End Sub
- エクセルファイルが開いたら
- シート見出し表示を非表示にする
- マクロ記録終了
たったこれだけでエクセルを開くと自動的にシート名の欄を隠してくれます。(非表示化)
また、ワークシート上かユーザーフォームにシート名の部分を再表示する為のコードを記述したコマンドボタンを準備しておく事も必要です。
非表示にするには”False”、表示するには”True”を指定するだけです。
Private Sub CommandButton1_Click()
ActiveWindow.DisplayWorkbookTabs = True
End Sub
エクセルファイルを様々な人と共有することあると思いますので、意図しない操作って意外と多いので、対策は必要ですよ!