マクロの概要(入門用) goto文・ラベルについて(Ver9.34対応版)
goto文とラベルについて
マクロの処理は上から下へ順番に実行されます。たとえば何かの選択枝を表示し、まったく違う処理体系にジャンプしたい場合や、
途中の処理を割愛するといった場合に、マクロの任意の場所に移動させるときに「
goto文 」と「
ラベル」を組み合わせて使います。
gotoは、「どこどこに行け」の指示で、ラベルがその「どこどこ」に値する飛び先です。
goto文の記述方法はサブルーチンとよく似ています。サブルーチンと決定的に違う点は、飛び先の処理が終わっても、呼び出した元のメインのマクロには戻りません。処理の実行主体が移動先に移動します。
ラベルをマクロに記述する方法は、ラベル名:(コロン)です。
ラベル名も処理の内容がわかるような名前をつけてください。
具体的な例として、エラーが発生した時や、処理の途中でマクロを終了する時など、終了させるためのマクロを記述しておきます。
goto文への移動方法をマクロの記述で表示します。
メインのマクロ内またはサブルーチン内
//何かの処理の途中
message "エラーが発生しました。マクロを終了します";
goto Doendmacro; //ラベル「Doendmacro:」へと移動する
//別の何かの処理の途中
question "マクロを終了しますか?";
if( result == yes ){
goto Doendmacro; //ラベル「Doendmacro:」へと移動する
}
endmacro;
//ここでマクロを終了させます
//この終了させる文「endmacro」がないと、
//下部にあるラベル内の記述が実行されます
Doendmacro: //ラベルの定義
enabledraw; //画面書き換えを許可するに戻す
endmacro; //この位置でマクロの実行を停止
|