call(サブルーチン)(Ver9.35対応版)
目次−
call(サブルーチン)
秀丸マクロでは、サブルーチンを使うことができます。サブルーチンは、call文で呼ばれます。サブルーチンからの復帰にはreturn文を使います。
サブルーチンの中ではローカル変数を使うことができます。ローカル変数は、##または$$で始まる変数です。
サブルーチンにはパラメータとして複数の値を渡すことができます。また、サブルーチンから復帰するときに、値をひとつだけ返すことができます。
サブルーチンの名前は、ラベルで指定します。
callは以下のように使います。
call ラベル名 [パラメータ1, パラメータ2, ・・・]
パラメータは必要に応じて指定してください。ちなみにパラメータの型が文字列型か数値型かの区別はサブルーチンを呼ぶ側と呼ばれる側でしっかりと合わせておく必要があります。秀丸エディタは特に型チェックはしません。
パラメータの数は9個までが上限です。
呼ばれた側では、渡されたパラメータは以下のような変数で参照することができます。
|
1番目のパラメータ(文字列型の場合) |
|
$$1 |
|
2番目のパラメータ(文字列型の場合) |
|
$$2 |
|
1番目のパラメータ(数値型の場合) |
|
##1 |
|
2番目のパラメータ(数値型の場合) |
|
##2 |
|
以下同様・・・ |
|
|
|
returnするときには値を返すことができます。値を返すには、returnの後ろで値を指定します。文字列型を返すか数値型を返すかは呼び出し元と先とで合わせておく必要があります。
呼び出した側で復帰値を見るには、##returnまたは$$returnという変数を使います。文字列型の場合は$$returnで、数値型の場合は##returnとなります。
例 |
call QuestionSub "テスト";
if( ##return ) beep;
endmacro;
QuestionSub:
question "問い合わせ:" + $$1;
return result;
|
callされたサブルーチンからさらにサブルーチンを呼ぶこともできます。最高150回程度重複可能です。(V9.12以降)
call文のラベルが「$」から始まる場合、文字列変数を指定することができます。(V8.54以降)
文字列変数を指定する場合は、ラベル部分とパラメータ部分はカンマで区切る必要があります。
例 |
$x = "QuestionSub";
call $x, "テスト";
|
seterrormodeの指定でラベルが見つからないときにエラーを表示せずに次の文にマクロを継続することができます。(V8.85以降)
その際、エラーの状態は
getresultexで取得可能です。
refcallでパラメータを参照で渡す方法もあります。