Gosub

指定ラベルにジャンプし、Returnが実行されたら戻ってくる

Gosub, Label

Parameters

引数名説明
Label ラベル名。ホットキーラベルやホットストリングラベルも可能。
「%LabelName%」のような変数参照であってもよい。
ただし、実行時にラベル名を解決するため、パフォーマンスは若干下がる。

Remarks

Gosubを実行すると、指定ラベルの次の行に処理が移動し、以下の処理を実行する。
Returnコマンドが実行されると、呼び出しもとのGosubの次の行に処理が戻る。

Labelに存在しないラベルを指定すると、実行時にエラーダイアログが表示される。
ラベル名を設定ファイルから読み込むなど、存在しないラベルが指定される恐れがある場合は、下記の例のように「IsLabel()」関数でラベルが存在するかを調べてから実行するとよい。

IniRead,label,%ini%,%sec%,%key%
If(IsLabel(label))
{
	GoSub,%label%
}

Related

Return, Blocks, Loop, Goto

Example(s)

Gosub, Label1 
MsgBox, The Label1 subroutine has returned (it is finished).
return

Label1:
MsgBox, The Label1 subroutine is now running.
return