今回は、VBAでシステムを構築する際に、仕上げとなる画面設定について紹介します。
画面設定とは?
画面設定とは、VBAでシステムを作ってユーザーに渡す際に、ユーザーが自由にシートや列行を追加・削除したり、リボンを触られたりしないように設定しておくことです。
具体的には
- リボンを非表示にする。
- ウィンドウを非表示にする。
- 数式バー・ステータスバーを非表示にする。
今回はこれらについて紹介しますが、それ以外に、上記3つのプログラムをブックを開いたタイミングで動かす方法についても紹介します。
リボンを非表示・再表示

Sub リボン非表示()
Application.ExecuteExcel4Macro "show.toolbar(""ribbon"",false)"
End Sub
Sub リボン再表示()
Application.ExecuteExcel4Macro "show.toolbar(""ribbon"",true)"
End Sub
ExecuteExcel4Macroメソッドを使うとExcel4.0マクロ関数を実行できます。
構文:Applicationオブジェクト.ExecuteExcel4Macro(String)
Show.Toolbar関数※Excel4.0マクロ関数
構文:show.toolbar(""ribbon"",設定値)
設定値にFalseを指定するとリボンが非表示に、Trueを指定するとリボンが表示します。
ウィンドウを非表示・再表示

Sub ウィンドウ非表示()
Dim st As Worksheet
For Each st In Worksheets 'For Eachですべてのワークシートに設定します。
If st.Visible = True Then
st.Select
With ActiveWindow
.DisplayGridlines = False '枠線を非表示
.DisplayHeadings = False '行列番号を非表示
End With
End If
Next
ActiveWindow.DisplayWorkbookTabs = False 'シート見出しの非表示
End Sub
Sub ウィンドウ再表示()
Dim st As Worksheet
For Each st In Worksheets 'For Eachですべてのワークシートに設定します。
If st.Visible = True Then
st.Select
st.Protect Mypass
With ActiveWindow
.DisplayGridlines = True '枠線を表示
.DisplayHeadings = True '行列番号を表示
End With
End If
Next
Sheets("メインメニュー").Select
ActiveWindow.DisplayWorkbookTabs = True 'シート見出しの表示
End Sub
構文:Windowオブジェクト.DisplayGridlines
ワークシートの枠線を設定できます。Trueを指定すると枠線は表示、Falseを指定すると枠線は非表示になります。
構文:Windowオブジェクト.DisplayHeadings
ワークシートの行列番号を設定できます。Trueを指定すると行列番号は表示、Falseを指定すると行列番号は非表示になります。
構文:Windowオブジェクト.DisplayWorkbookTabs
シート見出しを設定できます。Trueを指定するとシート見出しは表示、Falseを指定するシート見出しは非表示になります。
数式バー・ステータスバーを非表示・再表示

Sub 数式バーステータスバー非表示()
With Application
.DisplayFormulaBar = False '数式バーの非表示
.DisplayStatusBar = False 'ステータスバーの非表示
End With
End Sub
Sub 数式バーステータスバー再表示()
With Application
.DisplayFormulaBar = True '数式バーの表示
.DisplayStatusBar = True 'ステータスバーの表示
End With
End Sub
構文:Applicationオブジェクト.DisplayFormulaBar
数式バーを設定できます。Trueを指定すると数式バーは表示、Falseを指定すると数式バーは非表示になります。
構文:Applicationオブジェクト.DisplayStatusBar = True
ステータスバーを設定できます。Trueを指定するとステータスバーは表示、Falseを指定するとステータスバーは非表示になります。
ブックが開くと同時にプログラムを動かす
ブックが開いたタイミングで上記3つのプログラムを動かしたい場合はイベントプロシージャを使います。
「プロジェクトエクスプローラー」→「ThisWorkbook」をダブルクリックします。
オブジェクトボックスをWorkbookにして、Workbook_Openプロシージャに下記のコードを記述して、それぞれのプロシージャを呼びだします。
※Workbook_Openプロシージャはブックの起動時に動き出すプロシージャです。

Private Sub Workbook_Open()
Application.ScreenUpdating = False
リボン非表示
ウィンドウ非表示
数式バーステータスバー非表示
Application.ScreenUpdating = True
End Sub
参考書籍

まとめ
今回はシステム構築時の画面設定について紹介しました。
次回はシステムの終了時に使えるプロシージャについて紹介します。

コメント