Application.EnableCancelKey プロパティ (Excel)Application.EnableCancelKey property (Excel)

ユーザーが実行中のプロシージャに中断した Ctrl + Break (または Esc または Command + Period) を処理する方法を制御します。Controls how Microsoft Excel handles Ctrl+Break (or Esc or Command+Period) user interruptions to the running procedure. XlEnableCancelKey を読み取り/書き込み。Read/write XlEnableCancelKey.



expression**Application** オブジェクトを 表す変数。expression A variable that represents an Application object.


XlEnableCancelKeyには、次の定数のいずれかを指定できます。XlEnableCancelKey can be one of these constants:

  • xldisabledxlDisabled. 割り込みを無視します。Cancel key trapping is completely disabled.
  • xlErrorHandlerxlErrorHandler. このエラーは On Error GoTo ステートメントでトラップできます。The interrupt is sent to the running procedure as an error, trappable by an error handler set up with an On Error GoTo statement. エラー コードは 18 です。The trappable error code is 18.
  • xlInterruptxlInterrupt. デバッグ、終了などを行えるように、実行中のプロシージャを停止します。The current procedure is interrupted, and the user can debug or end the procedure.

このプロパティは慎重に使用してください。Use this property very carefully. xldisabledを使用した場合、ランナウェイループまたはその他の非自己終了コードを中断することはできません。If you use xlDisabled, there's no way to interrupt a runaway loop or other non-self-terminating code. 同様に、 xlErrorHandlerを使用していてもエラーハンドラーが常にResumeステートメントを使用して戻る場合は、ランナウェイコードを停止する方法はありません。Likewise, if you use xlErrorHandler but your error handler always returns by using the Resume statement, there's no way to stop runaway code.

実行中のプロシージャがなく、Excel が待機状態にある場合は、常に EnableCancelKey プロパティの値は xlInterrupt になります。The EnableCancelKey property is always reset to xlInterrupt whenever Microsoft Excel returns to the idle state and there's no code running. 取り消しキーをトラップしたり、無効にしたりするには、プロシージャの実行のたびに明示的に EnableCancelKey プロパティに設定する必要があります。To trap or disable cancellation in your procedure, you must explicitly change the EnableCancelKey property every time the procedure is called.


次の使用例は、EnableCancelKey プロパティを使って、独自のキャンセル処理ルーチンを定義する方法を示しています。This example shows how you can use the EnableCancelKey property to set up a custom cancellation handler.

On Error GoTo handleCancel 
Application.EnableCancelKey = xlErrorHandler 
MsgBox "This may take a long time: press ESC to cancel" 
For x = 1 To 1000000 ' Do something 1,000,000 times (long!) 
 ' do something here 
Next x 
If Err = 18 Then 
 MsgBox "You cancelled" 
End If

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.