Tera Termマクロでサブルーチンを使う方法
TeraTermマクロはラベルを付けることによってサブルーチンを定義できます。 サブルーチンを定義するためには、次のように書きます。
call sub1
end
:sub1
messagebox "sub1" "sub1がcallされました"
先頭にコロン(:)を付けた文字列はラベルとして認識されます。このラベルを付けたサブルーチンをcallで呼び出します。
サブルーチンはreturnで明示的に呼び出し元へ戻る必要があります。たとえば次のようにするとどうなるでしょうか?
call sub1
messagebox "サブルーチン終了" "サブルーチンから抜けました"
end
:sub1
messagebox "sub1" "sub1がcallされました"
:sub2
messagebox "sub2" "sub2がcallされました"
:sub3
messagebox "sub3" "sub3がcallされました"
このマクロを実行すると、2行目の「サブルーチンから抜けました」というメッセージは表示されません。「sub1がcallされました」「sub2がcallされました」「sub3がcallされました」と順次表示されて終了します。 sub1から呼び出し元へ戻るためには次のようにします。
call sub1
messagebox "サブルーチン終了" "サブルーチンから抜けました"
end
:sub1
messagebox "sub1" "sub1がcallされました"
return
:sub2
messagebox "sub2" "sub2がcallされました"
:sub3
messagebox "sub3" "sub3がcallされました"
sub1でreturnを追加しています。これによりsub1を実行後、呼び出し元へ戻り「サブルーチンから抜けました」というメッセージが表示さます。そして、3行目のendにより処理が終了します。
引数と戻り値
サブルーチンは引数をとることができません。そのためサブルーチンを呼び出す前に変数に値を設定してcallします。
Tera Termマクロの変数はすべてグローバル変数ですから変数名の重複に注意してください。 またサブルーチンで戻り値を設定することもできません。
この記事が気に入ったらサポートをしてみませんか?