Sub プロシージャ (Visual Basic)

Sub プロシージャは、Sub ステートメントと End Sub ステートメントで囲まれた一連の Visual Basic ステートメントです。 Sub プロシージャはタスクを実行した後、呼び出し元のコードに制御を返しますが、呼び出し元のコードに値を返すことはありません。

プロシージャが呼び出されるたびに、Sub ステートメント後の最初の実行可能なステートメントから、最初の End Sub、Exit Sub、または Return ステートメントまでの一連のステートメントが実行されます。

Sub プロシージャは、モジュール、クラス、および構造体に定義できます。 既定では Public に設定されます。つまり、プロシージャを定義したモジュール、クラス、または構造体へのアクセスが可能なアプリケーション内のどこからでも呼び出すことができます。 メソッドとは、それが定義されているモジュール、クラス、または構造体の外部からアクセスすることのできる Sub プロシージャまたは Function プロシージャのことです。 詳細については、「Visual Basic におけるプロシージャ」を参照してください。

また、Sub プロシージャは、呼び出し元のコードによって渡される定数、変数、式などの引数を受け取ることができます。

宣言の構文

Sub プロシージャを宣言する構文は次のとおりです。

[modifiers] Sub subname[(parameterlist)]

' Statements of the Sub procedure.

End Sub

modifiers にはアクセス レベルの他、オーバーロード、オーバーライド、共有、およびシャドウに関する情報を指定できます。 詳細については、「Sub ステートメント (Visual Basic)」を参照してください。

パラメーター宣言

プロシージャの各パラメーターは、パラメーター名とデータ型を指定するという、変数を宣言するのと似た方法で宣言します。 また、引数渡しの方法およびパラメーターを省略できるかどうか、パラメーター配列かどうかも指定できます。

パラメーター リストの各パラメーターの構文は次のとおりです。

[Optional] [ByVal | ByRef] [ParamArray] parametername As datatype

パラメーターを省略可能にする場合は、宣言内で既定値を指定する必要があります。 既定値を指定する構文は次のとおりです。

Optional [ByVal | ByRef] parametername As datatype = defaultvalue

ローカル変数として扱われるパラメーター

制御がプロシージャに渡ると、各パラメーターはローカル変数として扱われます。 つまり、その有効期間はプロシージャの有効期間と同じで、スコープはプロシージャ全体になります。

呼び出し構文

Sub プロシージャは、スタンドアロンの呼び出しステートメントを使って明示的に呼び出す必要があります。 式の中で名前を使って呼び出すことはできません。 省略できないすべての引数の値を指定し、引数リストをかっこで囲む必要があります。 指定する引数がない場合は、かっこを省略することもできます。 Call キーワードは省略できますが、指定することが推奨されています。

Sub プロシージャを呼び出す構文は次のとおりです。

[Call] subname[(argumentlist)]

Sub メソッドは、それが定義されているクラスの外部から呼び出すことができます。 まず、New キーワードを使用してクラスのインスタンスを作成するか、クラスのインスタンスを返すメソッドを呼び出す必要があります。 詳細については、「New 演算子 (Visual Basic)」を参照してください。 その後、次の構文を使用することで、インスタンス オブジェクトの Sub メソッドを呼び出すことができます。

Object.methodname[(argumentlist)]

宣言と呼び出しの例

次の Sub プロシージャは、アプリケーションが実行しようとしているタスクとタイム スタンプを表示します。 アプリケーションでは、さまざまな場所から tellOperator を呼び出すことができるため、すべてのタスクの先頭にこのコードを複製する必要はありません。 呼び出し時には、引数 task で文字列が渡されます。この文字列によって、開始されようとしているタスクが確認されます。

Sub tellOperator(ByVal task As String)
    Dim stamp As Date
    stamp = TimeOfDay()
    MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub

tellOperator を呼び出す一般的な例を次に示します。

Call tellOperator("file update")

参照

処理手順

方法: 値を返さないプロシージャを呼び出す (Visual Basic)

方法 : Visual Basic でイベント ハンドラーを呼び出す

参照

Sub ステートメント (Visual Basic)

概念

Visual Basic におけるプロシージャ

Function プロシージャ (Visual Basic)

Property プロシージャ (Visual Basic)

演算子プロシージャ (Visual Basic)

プロシージャのパラメーターと引数 (Visual Basic)