見出し画像

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マクロの変数はすべてグローバル変数ですから変数名の重複に注意してください。 またサブルーチンで戻り値を設定することもできません。

この記事が気に入ったらサポートをしてみませんか?