苦労して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
エクセルファイルを様々な人と共有することあると思いますので、意図しない操作って意外と多いので、対策は必要ですよ!
また、リボンツールバー非表示と一緒に使いたいのが、✖印を使用停止にしたり、エクセルメニューリボンを非表示化も便利機能ですよ。






よく見られているページ
-
エクセルの計算式の値を数字として読み取るVALUE関数
-
VBAの画面のちらつきがたった1行で解決して処理高速化する方法
-
COUNT関数を使って参加人数を自動的に数えるエクセル関数使用法
-
エクセルの時刻表示を0:00ではなく24:00にする方法
-
チェックボックスでチェック有と無しそれぞれの処理を変える方法
-
1クリックで上書き保存してエクセルファイルを閉じる方法
-
エクセル計算式が#VALUE!エラーになったセルを空欄にする方法
-
条件に一致したセルを繰り返し探してVBAで文字色を変える方法
-
コマンドボタンの色をクリックするたびに黒色と赤色を入れ替える方法
-
エクセルシートの保護したらマクロエラーになった時のVBA対処法


新着ページ