• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessでのキーイベントの処理について)

Accessでのキーイベントの処理について

このQ&Aのポイント
  • Access2007のフォームのテキストボックスにキーが押されると、指定キーの処理を行い、テキストボックスの状態を元の状態に戻す方法を教えてください。
  • キーイベントの処理はうまく行われているが、テキストボックスに押したキーが入力されてしまう問題が発生しています。
  • 解決策として、キーイベントの処理内でテキストボックスの値を別の変数にコピーし、処理後に元の値に戻す方法があります。具体的なコードを示します。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

こんな感じで如何でしょ? Shift + A キーの場合で想定しています Private Sub タイトル_KeyDown(KeyCode As Integer, Shift As Integer)   If KeyCode = vbKeyA And Shift = acShiftMask Then     MsgBox "a" '処理のつもり     SendKeys "{ESC}"   End If End Sub A キーのみなら   If KeyCode = vbKeyA And Shift = acShiftMask Then を   If KeyCode = vbKeyA で。 ただ、SendKeys は非同期に動く場合がありますので、処理によっては 期待した結果が得られない場合もあると思います。 キーが1種類ならラベルのイベントで行っても良さそうです。 この場合のラベルはテキストボックスと一緒に付いてくる方ではなく 単独のラベルです。 ラベルの標題を、ほにゃらら&A としておけば Alt + A で Private Sub ラベルほにゃらら_Click()   MsgBox "a" '処理のつもり End Sub が起動します。 当方2002ですが多分大丈夫・・・かな?

Z_RX8_FR
質問者

お礼

早速のご指導、有り難うございます。 「SendKeys "{ESC}"」、これでうまく動きました。 「非同期」と言うのが気になりますが、必ず指定の「テキストボックス」に送る様には出来ないのでしょうか? 今のところ順調に動いていますのでこのまま行こうと思います。 有り難うございました。