
お世話になります。
現在下記環境にてコーディングしておりますが実行時エラーが発生します。
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を見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー:2517 プロシージ...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
改行を含んだデータのインポート
-
UPDATEで既存のレコードに文字...
-
PRIMARY KEYのコピー
-
エラーを起こす方法
-
truncate tableを使って複数の...
-
PostgreSQLのtimestamp型で時間...
-
SQLサーバに対するSQL文で抽出...
-
1つのSQLで2段階の抽出を行い...
-
追加クエリで重複データなしで...
-
Accessの構成をコピーしたい
-
sqlに記述できない文字
-
ExcelのMatch関数のようなもの...
-
PostgreSqlのシステムスキーマ...
-
既存データをINSERT文にして出...
-
【SQL】項目に紐づいている情報...
-
Excel VBAのユーザーフォームで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブル名が可変の動的SQLをフ...
-
SQLでTableが作れないlol
-
実行時エラー:2517 プロシージ...
-
定義域関数の抽出と連結表示に...
-
CPRM decrypterのエラーコード...
-
教えてください
-
Activation codeとは
-
オシロスコープYOKOGAWA DL708...
-
Access97のクエリー(sql文)につ...
-
Access2000のDLOOKUPについて
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
SQLサーバに対するSQL文で抽出...
-
UPDATEで既存のレコードに文字...
-
エラーを起こす方法
-
truncate tableを使って複数の...
-
既存データをINSERT文にして出...
-
timestampのデータはどのように...
おすすめ情報