本サイトはプロモーションを含みます。

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されました"

7行目でreturnを追加しています。これによりsub1を実行後、呼び出し元へ戻り「サブルーチンから抜けました」というメッセージが表示さます。そして、3行目のendにより処理が終了します。

引数と戻り値

サブルーチンは引数をとることができません。ですので、サブルーチンを呼び出す前に変数に値を設定し、callします。変数はすべてグローバル変数ですので、変数名の重複に注意してください。

また値を戻すこともできないので、必要であればあらかじめフラグ用の変数を用意します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)