Excel-VBAを組み込んだエクセルファイルを渡して使ってもらうと、エラー表示になったと言われることがあります。
原因は簡単で、エクセル操作をオリジナル入力画面のユーザーフォームを使用して、全ての操作を行うようにしていますが、何らかの理由で、ワークシートの下の部分にあるシート名を直接クリック操作されることでした。
エクセルVBAではシート名が変更されたり、意図しないシート移動されるとマクロエラーで動かなくなってしまう事あるので、できれば触らせたくない!
エクセルVBAではシート名が変更されたり、意図しないシート移動されるとマクロエラーでエクセル自体が動かなくなってしまう事あるので、できれば触らせたくないので非表示にしてしまえば解決です!
DisplayWorkbookTabsでシートを非表示化へ
エクセルファイルを開くと自動的にシートを非表示にすることができる、 DisplayWorkbookTabs を使用します。
非表示にするには”False”、表示するには”True”を指定します
エクセルを開いたときに自動的に処理を行う方法はThisWorkBookに記述します。
Private Sub Workbook_open()
ActiveWindow.DisplayWorkbookTabs = False
End Sub
- エクセルファイルを開くと
- シート見出し表示を非表示にする
- マクロ記録終了
これで、エクセルを開いてマクロを有効化すると、シートを隠して表示してくれます。
念の為に、ワークシート上かユーザーフォームにシート見出し表示を再表示する為のコードを記述したコマンドボタンを準備しておく事も必要です
Private Sub CommandButton1_Click()
ActiveWindow.DisplayWorkbookTabs = True
End Sub
- コマンドボタン1をクリックすると
- シート見出し表示を再表示する
- マクロ記録終了
コマンドボタンはユーザーフォームに配置して使用しています。
参考までに、同じく意図しない操作を防ぐのにユーザーフォームの「×」ボタンを使用停止やメニューリボンを非表示にすることができますよ。

Excel-VBAを使えば数分かかる作業がたったの1秒で終了しますよ!