アプリ起動時のShiftキーを無効にする(AllowBypassKey)
Accessで作成したアプリの起動時、デフォルトではShiftキー押しながら起動するとスタートアッププロパティやAutoExecマクロを実行せずに起動することができますが、運用時にはそれすらもさせたくない場合があります。
こういった場合、プロパティ「AllowBypassKey」を設定することで、Shiftキーでの起動を無効にすることができます。
目次
- プロパティ「AllowBypassKey」の設定方法
- Shiftキーを無効に設定した後に有効に戻す方法
- 参考リンク
プロパティ「AllowBypassKey」の設定方法
プロパティ「AllowBypassKey」は画面から追加や変更ができないので、設定するためにはVBAにコードを直接書く必要があります。
以下、プロパティ「AllowBypassKey」を設定するためのコードになります。
Public Function InitApp()
Call SetAllowBypassKey(False)
End Function
Function SetAllowBypassKey(propValue As Variant) As Boolean
Const propName As String = "AllowBypassKey"
Dim dbs As Object
Set dbs = CurrentDb
On Error GoTo Err_Function
dbs.Properties(propName) = propValue
SetAllowBypassKey = True
Exit_Function:
Exit Function
Err_Function:
If Err = 3270 Then ' property not found
Dim prp As Variant
Set prp = dbs.CreateProperty(propName, dbBoolean, propValue)
dbs.Properties.Append prp
Resume Next
Else
' Unknown error.
SetAllowBypassKey = False
Resume Exit_Function
End If
End Function
上記コードのInitAppをAutoExecマクロなどで呼び出すようにすると、一度実行した後、次回の起動からはShiftキーを押しながらの起動が効かなくなっています。
SetAllowBypassKeyでやっていることは、基本的にはAllowBypassKeyの値を設定(True or False)しているだけですが、デフォルトではプロパティが存在しないので、設定しようとしてプロパティがなければ(エラーコード:3270)、Boolean型のプロパティ「AllowBypassKey」を新しく作成する、という流れになります。
プロパティ「AllowBypassKey」にFalseを設定すると、Shiftキーでの起動が無効になり、Trueまたはプロパティ自体が存在しない場合はShiftキーでの起動が有効になります。
Shiftキーを無効に設定した後に有効に戻す方法
一度設定したAllowBypassKeyプロパティの値を変更する場合、アプリ起動後に「F11」を押してナビゲーションウィンドウからVBAコードを修正したり、コードを修正したくないなら、テーブルで True/False の状態を保持しておき、必要な時にテーブルの値を変更して対応する、といった方法があります。