7.1.9 Sub
- 機能
-
Subプロシージャの名前,引数を宣言し,Subプロシージャの始まりを示します。SubステートメントとEnd Subステートメントで囲まれた一連のステートメントをSubプロシージャとして定義します。
- 形式
Sub Name〔(ArgList)〕 〔Statements〕 〔Exit Sub〕 〔Statements〕 End〔Sub〕
- 指定項目
-
- Name
-
定義するSubプロシージャの名前を指定します。変数の名前付け規則に従って名前を付けます。
- ArgList
-
Subプロシージャを呼び出すときに,Subプロシージャに渡す引数を表す変数のリストを指定します。複数の変数を指定するときは,コンマ( , )で区切ります。引数がある場合には,引数を必ずカッコで囲んでください。
- Statements
-
Subプロシージャ内で実行される,一連のステートメントを指定します。
- 説明
-
Subプロシージャはパブリックプロシージャなので,スクリプト内の他のすべてのプロシージャからも参照できます。
実行可能なコードはすべてプロシージャ内に記述する必要があります。また,Subプロシージャを他のSubプロシージャ,Functionプロシージャの中で定義することはできません。
Exit Subステートメントは,Subプロシージャを直ちに終了します。プログラムの実行は,そのSubプロシージャを呼び出したステートメントの次のステートメントから継続されます。Exit Subステートメントは,Subプロシージャ内の任意の場所に必要に応じて幾つでも指定できます。
Subプロシージャは値を返さないため,Subプロシージャ名を式,ステートメント,およびコマンドの中に記述できません。
Subプロシージャを呼び出すには,プロシージャ名の後ろに引数リストを付けて指定します。Subプロシージャの呼び出し方法については,Callステートメントを参照してください。
Subプロシージャで使う変数には,Subプロシージャ内で明示的に宣言される変数と,それ以外の変数の 2 種類があります。プロシージャ内でDimコマンドなどを使用して明示的に宣言された変数は,そのプロシージャの中だけで有効なローカル変数になります。プロシージャ内で明示的に宣言しないで使われている変数も,そのプロシージャの外部のさらに上のレベルで明示的に宣言されていないかぎりは,ローカル変数となります。Subプロシージャ内のローカル変数の値は,プロシージャの実行が終了すると破棄されます。
プロシージャ内で明示的に宣言されていない変数をプロシージャ内で使うことはできますが,その変数と同じ名前の変数などがスクリプトレベルで定義されている場合,その変数はグローバルな変数として扱われます。
- 例
' メッセージダイアログを表示する ' SubプロシージャOperateMessageをCALLする。 Dim Task Task = "file update" Call OperateMessage("Start") : Call OperateMessage("Stop") Sub OperateMessage(status) Dim stamp stamp = Date + " " + Time MessageBox( "[" & status & "]" & Task & " at " & stamp) End Sub
- 対象バージョン
-
JP1/Script 01-00以降