【Access】VBAでファンクションキーの本来持っている機能を停止する【エラー対策】

あすてる

あすてる

ファンクションキーを割り当てして見積書に使っているんですが、初起動時、1回のみ割り当てているファンクションキーを押すと、意図していないところに大ジャンプしちゃうんです。

初起動時一回だけってのも謎なんですが…。

たった一回とはいえ、エラーは邪魔です。

操作に慣れてない人にとってエラーは恐怖です。

できるだけそういうものは残したくないので、対策をとりたいと思います。

エラー状況は動画を参照してください。

F6で得意先検索フォーム開くのでですが、一瞬開いてすぐ閉じて赤い矢印のサブフォームへ大ジャンプ(笑)って感じなります。

F6を押して呼び出しすると得意先検索フォームが開くのですが、エラー表示になって閉じるとメモまで大ジャンプしているという状況になっています。

得意先検索フォームを閉じるときにエラーが発生しているのかな?と思い、フォームをチェックしてみたけど、それらしきコードは見当たらない…?!

動作的には得意先検索フォームを閉じたときに発生するエラーなので、ここで対処するしかないのかな?と思い、考えました。

いろいろ試したけど、原因はわからない?!

いくら悩んでもわからないので、とりあえず、エラーをなくす対応策を考えよう。ということで…。

根が単純なので、ファンクションキーが本来持っている機能が働いているのかな?と思ったので、それを止めてみることにしました。

【Access】VBAでファンクションキーの本来持っている機能を停止するコード

ファンクションキーの本来持っている機能を停止するコード例
Private Sub 得意先名_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = vbKeyF6 Then

KeyCode = 0 '本来の処理をさせない

Me.得意先コード = ""

DoCmd.OpenForm "得意先検索窓"

Forms!得意先検索窓!得意先検索.SetFocus

End If

End Sub

無事にこのコードで無事にエラーの発生を止めることができました。

上記がエラー対策後の動画です。

エラーが表示されることなく表示されました。

原因はいまだ不明なままですが、とりあえず、エラーを出さないように対応できたのでよし!とします。

得意先検索『F6』コードそのまま掲載しているので、長そうに見えますが、たった一文です。

KeyCode = 0

これだけで、ファンクションキーを押しても本来の処理をさせないというコードの記述になります。

ファンクションキーに割り当てしたのに似たようなエラーが起こってしまう場合に役に立ちます。

あとは、ファンクションキー本来の機能停止の際に大活躍。

注意なのが、この場合はF6の条件式の中に組み込まれているので、F6とわかります。

このコードを使用するときは、ファンクションキーの指定はしてくださいね。

ファンクション停止を読んだ方へおすすめの参考書
カテゴリー:
関連記事