
お世話になります。
現在下記環境にてコーディングしておりますが実行時エラーが発生します。
Access2016(32bit)
Win7Pro(32bit)
目的
作成したフォーム内にてファンクションキーの制御をする。
(押したファンクションキーに対応するコマンドボタンのCaptionと同プロシージャを実行する)
【フォームモジュール内】
Private Sub Form_KeyDown(Keycode As Integer, Shift As Integer)
If PushBtnName(Keycode:=Keycode) = "" Then
Exit Sub
Else
Application.Run "FN_" & PushBtnName(Keycode:=Keycode)
End If
End Sub
Private Sub FN_~~~()
処理
End Sub
【標準モジュール内】
Public Function PushBtnName(Keycode As Integer) As String
Select Case Keycode
Case Is = vbKeyF1
Keycode = 0 '既存の「ヘルプ表示」機能を無効化
Screen.ActiveForm.Controls("btn_F01").SetFocus
Case Is = vbKeyF2
Screen.ActiveForm.Controls("btn_F02").SetFocus
Case Is = vbKeyF3
Screen.ActiveForm.Controls("btn_F03").SetFocus
Case Is = vbKeyF4
Screen.ActiveForm.Controls("btn_F04").SetFocus
Case Is = vbKeyF5
Screen.ActiveForm.Controls("btn_F05").SetFocus
Case Is = vbKeyF6
Screen.ActiveForm.Controls("btn_F06").SetFocus
Case Is = vbKeyF7
Screen.ActiveForm.Controls("btn_F07").SetFocus
Case Is = vbKeyF8
Screen.ActiveForm.Controls("btn_F08").SetFocus
Case Is = vbKeyF9
Screen.ActiveForm.Controls("btn_F09").SetFocus
Case Is = vbKeyF10
Screen.ActiveForm.Controls("btn_F10").SetFocus
Case Is = vbKeyF11
Screen.ActiveForm.Controls("btn_F11").SetFocus
Case Is = vbKeyF12
Keycode = 0 '既存の機能を無効化
Screen.ActiveForm.Controls("btn_F12").SetFocus
End Select
If Screen.ActiveForm.ActiveControl.Caption <> "" Then
PushBtnName = Screen.ActiveForm.ActiveControl.Caption
End If
End Function
PushBtnNameを標準モジュール内に記載したのは、複数のフォームで使用する機能だからです。
上記を実行時に「'FN_~~~'プロシージャが見つかりません。」表示がされます。
検索した所、CallByNameにて対応している例がございましたが、どうも理解が足りず私では対応できませんでした。
ご教授願います。
No.1ベストアンサー
- 回答日時:
>Application.Run "FN_" & PushBtnName(Keycode:=Keycode)
Call "FN_" & PushBtnName(Keycode:=Keycode)
にするとどうですか?
回答ありがとうございます。
Call文で記述する際はプロシージャ名に変数を使用することができないため、構文エラーとなりました。
また、Fnキー以外のキー(AltやShiftキー等)を押した際の対応処理も漏れていた為、自分で検討した上で再度質問させていただくこととしました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracl[10g]の SQL文について(No.8)
-
テーブル名が可変の動的SQLをフ...
-
selectの書き方を教えてください
-
Excelでしりとりを作る方法
-
データ削除とSQL*Loaderでのイ...
-
SELECT INTOで一度に複数の変数...
-
Access2010のVBAで異体字の記述
-
SQLです!!教えてください。あ...
-
SQLで、Join句で結合したテ...
-
場合により問い合わせが異常に...
-
データがリストアできない!!
-
既にテーブルが存在する場合の...
-
データベース ユーザの「このユ...
-
T-SQLで任意の箇所で強制終了す...
-
あってますか?SQL
-
結合したテーブルをSUMしたい
-
ExcelVBAで複数のコマンドボタ...
-
既存データをINSERT文にして出...
-
SQLをExcelで書いている人を良...
-
InformixのSQL文Where句で
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブル名が可変の動的SQLをフ...
-
実行時エラー:2517 プロシージ...
-
CPRM decrypterのエラーコード...
-
オシロスコープYOKOGAWA DL708...
-
Oracl[10g]の SQL文について(No.8)
-
Activation codeとは
-
SQL スクリプトの質問
-
SQLでTableが作れないlol
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
truncate tableを使って複数の...
-
UPDATEで既存のレコードに文字...
-
PostgreSQLのtimestamp型で時間...
-
オラクルのUPDATEで複数テーブル
-
既存データをINSERT文にして出...
-
エラーを起こす方法
-
SQLで、Join句で結合したテ...
-
Accessの構成をコピーしたい
おすすめ情報