Microsoft Access 掲示板

プロシージャの使い方 / 5

14 コメント
views
4 フォロー
5
hiroton 2024/03/06 (水) 15:38:00 20532@f966d

記述位置は

対象フォーム内のVBA画面の一番最後

で合ってますよ。「フォームモジュール」がそこのことです

Private Sub proKey1()

'//KeyCodeが変数宣言されていない

  'プロシージャの作成(名前:proKey1)
    If KeyCode = 9 Or KeyCode = 17 Or KeyCode = 67 Then 'Tab・Ctrl・C キーのみ使える
       Exit Sub
    Else
       KeyCode = 0  'Tab・Ctrl・C キー以外は禁止
    End If
End Sub

質問のコードはKeyCodeが謎の存在です。VBA自体は変数宣言は必須ではありませんが、一般的にはOption Explicit宣言により変数宣言を強制します。エラーが出ないということはOption Explicit宣言がないということですが、基本的に使わないメリットよりも使うメリットが優る機能です。より深い知識を学ぶよりも先に、基本的にやって当たり前のことはできるようにしましょう

hatenaさんの回答が答えですが、変数とは、名付けに従って思った通りに動くようなものではありません。KeyCodeと記述したからと言って、思った通りのKeyCodeになるわけではないのです。思った通りに動くように、指示・命令・操作をしてあげなければなりません

今回は、(コピペで解決するような)思ったような動作が組めたかったことよりも、謎の存在を生み出してしまったこと、また、それが謎の存在であると気づけなかったことのほうがよほど大きな問題でしょう

通報 ...