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
になるわけではないのです。思った通りに動くように、指示・命令・操作をしてあげなければなりません
今回は、(コピペで解決するような)思ったような動作が組めたかったことよりも、謎の存在を生み出してしまったこと、また、それが謎の存在であると気づけなかったことのほうがよほど大きな問題でしょう
通報 ...