使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
テキトーに何処かをクリックしてからだと出来るっぽいです。
SendKeys "{左クリック}" 的なモノを探してみてみました。
http://hanatyan.sakura.ne.jp/vbhlp/mouse\_event.htm
を参考(丸写し)に標準モジュールにて。
'マウスを擬似的に動作させる
Private Declare Sub mouse_event Lib "user32" ( _
ByVal dwFlags As Long, ByVal dx As Long, _
ByVal dy As Long, ByVal cButtons As Long, _
ByVal dwExtraInfo As Long)
Private Const MOUSE_MOVED = &H1 'マウスを移動する(相対座標)
Private Const MOUSEEVENTF_ABSOLUTE = &H8000& 'MOUSE_MOVED or で絶対座標を指定
Private Const MOUSEEVENTF_LEFTUP = &H4 '左ボタンUP
Private Const MOUSEEVENTF_LEFTDOWN = &H2 '左ボタンDown
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20 '中央ボタンDown
Private Const MOUSEEVENTF_MIDDLEUP = &H40 '中央ボタンUP
Private Const MOUSEEVENTF_RIGHTDOWN = &H8 '右ボタンDown
Private Const MOUSEEVENTF_RIGHTUP = &H10 '右ボタンUP
'現在のマウスカーソルの位置座標を取得する
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
'マウス位置を指定
Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
'
'マウス位置用の POINTAPI 構造体
Private Type POINTAPI
X As Long
Y As Long
End Type
'マウス位置の一時記憶用
Private mPos As POINTAPI
Sub mPosGet()
Call GetCursorPos(mPos) 'マウス座標の取得
End Sub
Sub mClick()
SetCursorPos mPos.X, mPos.Y
' Debug.Print mPos.X, mPos.Y
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub
フォームの『日付』コントロールのイベントに
Private Sub 日付_Change()
Call mClick
End Sub
Private Sub 日付_GotFocus()
Call mPosGet
End Sub
だと、どうかいな?
『っぽい』なので検証は不十分です。
(Win8.1 & Access2013 でも 『っぽい』でした)
(結果報告にドキドキ)