お世話になります。
現在下記環境にてコーディングしておりますが実行時エラーが発生します。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) select caseの入れ子 3 2023/03/08 18:48
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excel VBAからAccessマクロを実行したい
Visual Basic(VBA)
-
エクセルからアクセスのプロシージャーを実行させるには?
Excel(エクセル)
-
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
-
4
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
5
MSアクセスのマクロ・モジュールを実行
その他(プログラミング・Web制作)
-
6
エクセルでエラーが出て困っています。
Excel(エクセル)
-
7
エクセルVBAでアクセスファイルを開く方法
Access(アクセス)
-
8
AccessのDAO.ExecuteとDoCmd.RunSqlの違いについて
その他(データベース)
-
9
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
10
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
11
エクセルマクロエラー「'Cells'メソッドは失敗しました。'_Global'オブジェクト」について
Excel(エクセル)
-
12
ACCESSのモジュールエラー?
その他(データベース)
-
13
ExcelのマクロでAccessのmdbを起動したい
Excel(エクセル)
-
14
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
15
エクセルVBAからアクセスフォームについて
Access(アクセス)
-
16
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
17
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
-
18
Access2016でホームタブしか表示されない
ネットワーク
-
19
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
20
アクセス VBAについて FROM句の構文エラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CPRM decrypterのエラーコード...
-
フラグをたてるってどういうこ...
-
AccessVBAについて テーブルの...
-
pandasでsqlite3にテーブル作成...
-
三科目合計点のクラス別平均点...
-
結合したテーブルをSUMしたい
-
SQLで、Join句で結合したテ...
-
SELECTした結果に行番号を求めたい
-
改行を含んだデータのインポート
-
【SQL】他テーブルに含まれる値...
-
エクセルで去年のデータを今年...
-
Accessで今日から5日後
-
固定長のデータをmysqlで取り込...
-
VBAでの行数を揃える方法
-
集計でテストの各教科の最高得...
-
複数レコードの複数フィールド...
-
ストアドプロシージャが作成さ...
-
EXCELで外部データの取り込みが...
-
次の時間帯の勝率の合計を求め...
-
SQLでの複数列が重複してる行の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブル名が可変の動的SQLをフ...
-
CPRM decrypterのエラーコード...
-
オシロスコープYOKOGAWA DL708...
-
実行時エラー:2517 プロシージ...
-
Oracl[10g]の SQL文について(No.8)
-
Activation codeとは
-
定義域関数の抽出と連結表示に...
-
selectの書き方を教えてください
-
★★PL/SQLにてTBL内容をCS...
-
SQLでTableが作れないlol
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
テーブル名が可変の場合のクエ...
-
PostgreSQLのtimestamp型で時間...
-
UPDATEで既存のレコードに文字...
-
pandasでsqlite3にテーブル作成...
-
timestampのデータはどのように...
-
オラクルのUPDATEで複数テーブル
おすすめ情報