- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBA キーイベント設定した関数が別のファイルで実行されエラーになります。回避する方法は?)
ExcelVBA キーイベント設定した関数が別のファイルで実行されエラーになります。回避する方法は?
このQ&Aのポイント
- DELETEキーを拾うため、SheetのOpenイベントにApplication.onkeyにて「DELETE」キーと呼び出し関数を指定しています。
- 標準モジュールにて、呼び出し先関数を定義して普通に処理出来ているのですが、まったく関係の無いほかのエクセルファイルを開きDELETEキーを押下しても、同じ関数が呼び出されてしまいます。
- 困った事に、シートのある特定の状態を見ている為現状エラーメッセージボックスが表示されてしまいます。回避方法は幾らでもあるのですが、具体的な対応策が見つかりません。現状シート名にて判断しようと考えておりますが、かなりの数がある&シート名に制約が生まれるのでやりたくないんです。何か一般的な回避策がありましたら教えて頂け無いでしょうか。
- みんなの回答 (2)
- 専門家の回答
お礼
ご返答有難う御座います。 シートのActive、DeActiveを拾ってOnKeyの設定を 行わないと、新たなシートでDELキーが有効になりません でした。 下記のように対応しました。 ------------------------------------------------- 'ThisWorkBook Private Sub Workbook_Activate() ●OnKey セット● End Sub Private Sub Workbook_Deactivate() ●OnKey 解除● End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ●OnKey 解除● End Sub '標準モジュール Sub DELキーイベント関数() If ActiveWorkbook Is ThisWorkbook Then DELETE処理・・・・・ End If End Sub ------------------------------------------------- 上記対応により、問題なく処理する事が出来ました。 大変有難う御座いました。