AccessTips
データベースが出来上がったけれど、データベースウィンドウを見せたくない時には"起動時の設定"をします。テーブル、クエリを触ってほしくないとき、この設定は欠かせません。
ところが起動時の設定で指定してもShiftキーとEnterでDBウィンドウは開いてしまいます。
Shiftキーを無効にするためにはAllowBypassKeyをFalseに設定しますが、Databaseのプロパティなのにプロパティに組み込まれていません。ためしにVBエディタでAllowBypassKeyと入力してヘルプを出してみてください。
ところがAllowBypassKeyだけでうまくいかない(ヘルプはもしかして2000用??DAOのプロパティとして作り直すとうまく動作します。(別途UP予定))コードでショートカットキーもメニューバーも使用不可にしたい時は・・・
AllowSpecialKeysでショートカットキーを抑止、StartUpMenuBarでスタートアップメニューバー非表示になるように設定できます。
プロパティはおのおのコードで作成してあげます。
この三つのプロパティを全部Falseにすると確かに起動時にShiftキーを無効にし、起動後もF11でDBウィンドウが表示されることもないのですが、調子に乗りすぎて何度も実行するとメニューバーが二度と出てこなくなります。
(注 変数宣言を複数するときは、全部にきちんと型宣言文字をつけないとこういう目に遭います)
デバッグがかかるようなコードをわざと作っておくとVBエディタが開いて、そこから無理やりフォームにアクセスしてDBウィンドウを表示させることができますが、恐ろしいので絶対に全部Trueにするコードも忘れずに書いておいてください。
個人的にはプロジェクトにロックをかけ、DBWindowのオブジェクトをそれぞれ隠しオブジェクト設定にしておくほうがメンテナンス時、楽だと思います。
'------Databaseウィンドウに何も表示させなくするプロシージャ----
'------(ただし隠しオブジェクトにチェックを入れること)--------
Public Function SetNotVisible()
Dim varSize As Variant' 現在の設定を調べる。
varSize = Application.GetOption("Show Hidden Objects")
If varSize = True Then 'もし表示されているのなら非表示設定に変更
Application.SetOption "Show Hidden Objects", False
End IfEnd Function
メニューバーもツールバーも表示されなくなったら・・下記のコードをどこかに仕込んで置いてください。
Dim mb As CommandBar
Set mb = CommandBars.Add("dummy", MenuBar:=True, Temporary:=True)
Application.MenuBar = "dummy"
mb.Visible = True
![]() |
ブラウザ別、解像度別の感想をぜひ! |