エクセルを開くと自動的にメニューバー(リボンツールバー)を非表示にする方法
エクセルVBAを使って作成したファイルを自分だけで使うならば問題ないのですが、複数のスタッフで共有して使っていると、思いもよらない行動「メニューバー」から操作されてマクロエラーになった経験ありませんか?
このように作成者の意図しない操作を防ぐには、メニューバー(リボンツールバー)を非表示にすることで解決しますよ。
メニューバーを隠して意図しないユーザー操作を防止
エクセルの画面の上に並んでいる、印刷や文字設定をしたりできる様々なメニューがありますが、これをリボンツールバーというのです。
これを非表示にしてしまえば、だれも触れなくなるので、問題が解決できますよ!
これが一般的なエクセルのリボンツールバーが表示されている画面ですね。
これをエクセルファイルを開いたら自動的に消してしまうと、このような画面になります。
実はリボンツールバーを非表示にすると、シートのスペースが当たりませですが広くなりましたね。
ではこのようにリボンツールバーを消すVBAコードを書いていきましょう。
SHOW.TOOLBAR
メニューバー(リボン)を隠してしまう方法は「SHOW.TOOLBAR」を使い、エクセルを開いたときに自動的に処理を行う方法はThisWorkBookに記述します。
Private Sub Workbook_open()
Application.ExecuteExcel4Macro “SHOW.TOOLBAR(“”Ribbon””, False)”
End Sub
- エクセルファイルが開かれたら
- リボンツールバーを非表示にする
- マクロ記録終了
これで、エクセルを開いてマクロを有効化すると、メニューバー(リボン)を隠して表示してくれます。
忘れてはいけないのが、ワークシート上またはユーザーフォームにメニューバー(リボン)を再表示する為のコードを記述したコマンドボタンを準備しておく事も必要です。
そうでないと復旧できなくなってしまうためですよ。
Private Sub CommandButton1_Click()
Application.ExecuteExcel4Macro “SHOW.TOOLBAR(“”Ribbon””, True)”
End Sub
- コマンドボタン1がクリックされたら
- リボンツールバーを表示する
- マクロ記録終了
たった1行なので難しくないですし、非表示のFalseを表示のTrueに変更するだけで完成するのとても簡単です。
この方法でも問題ないのですが、ちょっと工夫すると1つのコマンドボタンで非表示も再表示もできるんですよ!
クリックするたびに数式バーの表示/非表示を切り替え
なんでもかんでもできるわけではないのですが、この種の表示・非表示の切り替えには、FalseやTrueの代わりにNot演算子を使用するとできるようになるのですが、リボンツールバーにはこの方法が使えませんでしたので、IFステートメントで解決します。
Private Sub CommandButton1_Click()
If Application.CommandBars(“Ribbon”).Visible = True Then
Application.ExecuteExcel4Macro “SHOW.TOOLBAR(“”Ribbon””,False)”
Else
Application.ExecuteExcel4Macro “SHOW.TOOLBAR(“”Ribbon””,True)”
End If
End Sub
- コマンドボタン1がクリックされたら
- もし、リボンツールバーが表示中だったら
- リボンツールバーを非表示にする
- そうでなかったら(非表示中の場合)
- リボンツールバーを表示する
- Ifステートメント終了
- マクロ終了
これでコマンドボタンを押すたびにリボンツールバーの現在の状態と反対の操作をするようになるので、表示中ならば非表示にしてくれ、非表示ならば表示してくれます。
ボタン1つで表示を切り替えたり元に戻したりできると便利なので、ほかの表示方法も知っていて損はないと思いますよ!