English help on website



マクロの概要(入門用) goto文・ラベルについて(Ver9.34対応版)
goto文とラベルについて
マクロの処理は上から下へ順番に実行されます。たとえば何かの選択枝を表示し、まったく違う処理体系にジャンプしたい場合や、 途中の処理を割愛するといった場合に、マクロの任意の場所に移動させるときに「 goto文 」と「ラベル」を組み合わせて使います。 gotoは、「どこどこに行け」の指示で、ラベルがその「どこどこ」に値する飛び先です。

goto文の記述方法はサブルーチンとよく似ています。サブルーチンと決定的に違う点は、飛び先の処理が終わっても、呼び出した元のメインのマクロには戻りません。処理の実行主体が移動先に移動します。

ラベルをマクロに記述する方法は、ラベル名:(コロン)です。
ラベル名も処理の内容がわかるような名前をつけてください。
Doendmacro:
具体的な例として、エラーが発生した時や、処理の途中でマクロを終了する時など、終了させるためのマクロを記述しておきます。
goto文への移動方法をマクロの記述で表示します。

メインのマクロ内またはサブルーチン内
//何かの処理の途中
message "エラーが発生しました。マクロを終了します";
goto Doendmacro;    //ラベル「Doendmacro:」へと移動する

//別の何かの処理の途中
question "マクロを終了しますか?";
if( result == yes ){
    goto Doendmacro;    //ラベル「Doendmacro:」へと移動する
}
endmacro;
//ここでマクロを終了させます
//この終了させる文「endmacro」がないと、
//下部にあるラベル内の記述が実行されます
Doendmacro:        //ラベルの定義
    enabledraw;    //画面書き換えを許可するに戻す
    endmacro;      //この位置でマクロの実行を停止
戻る 目次 次へ