web-dev-qa-db-ja.com

コントロールブレークが2010(2013)Excel VBAで機能しない

私はコードを書いて(これが多くの人にとって信じられないくらい難しい)、ときどき失敗して、無限ループを作成します。私の新しい素晴らしいExcelでは、Ctrl + Breakは機能しなくなりました。 Escキーなども同様ではありません。私はWeb全体を調べましたが、Microsoftにはバグがあり、修正する気はないようです。

誰かがCtrl + Break機能をVBAに再導入する方法を知っているので、将来これが発生しても仕事を失うことはありませんか?ありがとうございました!

18
Tommy Z

Alt + Esc壊れるまでキーを押し続けます。

Windows 7以降、これは開いているすべてのウィンドウを循環します。気にしないで、ただ絞ってください。

37
John

Office 2013では、少なくともCtrl + Scroll Lockがそれを行います。設定を変更したり、有効にしたりする必要はありませんでした。

(Blatantプラグ: 私のブログ投稿 この情報の元のソースへのリンク:))

6
cxw

この非常に迷惑な動作を軽減する1つの方法は、

DoEvents

ループの中。反復ごとに実行する必要はありません。定期的に呼び出される限り、Ctrl Breakは引き続き機能します。

注:パフォーマンスの影響を避けるため、通常はコードのデバッグ後にこれを削除します

4
chris neilsen

以前に提案された解決策を役に立たなかった人は、これを試してください。それは私のために働いた(windows8、Excel 2016)

VBAコードウィンドウで、Alt + ESCキーを押したまま、左クリックして(そのウィンドウをドラッグする場合と同じように)押し続けます。実行が中断され、続行するかデバッグするかを尋ねられました...もちろんデバッグを選択しました。

2
washicd

誰かを助けることができる場合、マクロが実行されていないときにCtrl + breakを押すことは、開発者の外部で行う場合にのみ機能します。

1
user7076157

別の方法は、意図的にループにエラーを導入することです。たとえばループは1000回を超えて実行しないでください。

Function XYZ()
do while(..)
errcnt = errcnt + 1

if errcnt > 1000 then
  cells.find(what:="Chunk Norris").activate
exit function
endif

loop
end function

エラーが発生し、コードが「壊れる」

0
Alex