#091 ダイアログをファンクションキーで閉じるには? フォーム、VBA

ダイアログをファンクションキーで閉じるようにするには、まずファンクションキーが押されたことを検出しなければなりません。そのためには[キークリック時]イベントを利用します。このイベントではどのキーが押されたかも知ることができますので、押されたキーが"閉じる"機能を割り当てたファンクションキーかどうか調べればよいわけです。

次の例では、[F5]キー(定数:vbKeyF5)が押されたらフォームを閉じます。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

  If KeyCode = vbKeyF5 Then
    DoCmd.Close acForm, Me.Name
  End If

End Sub
この際、1つ注意すべきことがあります。普通、フォームにはいくつかのコントロールが配置され、そのいずれかにフォーカスがある状態になります。あるテキストボックスの[タブ移動順]プロパティが"0"だったとすると、フォームが開いた直後はこのテキストボックスの入力から作業が始まるようになります。そして、その状態でキーボードを押したとすると、そのテキストボックスにおける[キークリック時]イベントが発生してしまうのです。したがって、F5キーでフォームを閉じるようにするにはすべてのコントロールの[キークリック時]イベントプロシージャに上記のようなコードを書かなければならなくなってしまいます。そこで重要なのが、フォームの[キーボードイベント取得]プロパティを"はい"に設定することです。こうすることによって、どのコントロールにフォーカスがあっても、キーボードが押されると Form_KeyDown イベントプロシージャが真っ先に実行されるようになります。各コントロールごとの[キークリック時]イベントプロシージャも必要ありません。
| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved