◇ FOR ループでエラーになる

Q:次のようなマクロを組んでいるのですが、なぜかエラーになります。

FOR %0=1 TO 100
   :
  IF (= (message "終了しますか?") "Yes") GOTO :exit   ; ループ中、終了するか問い合わせ。「はい」ならループ終了
   :
NEXT

:exit                            ; ループ終了後の処理

A: FOR〜NEXT の中から GOTO で外に出ているからです。
 KMmacro は、「Next のところで %0 が100以上になっている」と、「FOR 文は終了した」と判断します。ですから、上の例のように GOTO で抜けてしまうと、終了と判断しないまま、マクロを続けていることになります。これが繰り返されると、FOR が幾重にも積み重ねて実行されている扱いになってしまい、エラーになることがあります。
 FOR の中から脱出したい場合は、EXITFOR を使ってください。

FOR %0=1 TO 100
   :
  IF (= (message "終了しますか?") "Yes") EXITFOR    ; ループ中、終了するか問い合わせ。「はい」ならループ終了
   :
NEXT