プロシージャは、宣言ステートメント (Function
、Sub
、Operator
、Get
、Set
) と一致するEnd
宣言で囲まれた Visual Basic ステートメントのブロックです。 Visual Basic のすべての実行可能ステートメントは、何らかのプロシージャ内にある必要があります。
プロシージャの呼び出し
コード内の他の場所からプロシージャを呼び出します。 これは プロシージャ 呼び出しと呼ばれます。 プロシージャの実行が完了すると、呼び出し元のコード (呼び出し元のコードと呼ばれます ) に制御が返されます。 呼び出し元のコードは、プロシージャを名前で指定して制御を転送するステートメントまたはステートメント内の式です。
プロシージャから戻る
プロシージャは、実行が完了したときに呼び出し元のコードに制御を返します。 これを行うには、 Return ステートメント、プロシージャに適した Exit ステートメント 、またはプロシージャの End <keyword> Statement ステートメントを使用できます。 その後、プロシージャ呼び出しのポイントに続いて、呼び出し元のコードに制御が渡されます。
Return
ステートメントを使用すると、コントロールはすぐに呼び出し元のコードに戻ります。Return
ステートメントの後のステートメントは実行されません。 同じプロシージャに複数のReturn
ステートメントを含めることができます。Exit Sub
またはExit Function
ステートメントを使用すると、コントロールは呼び出し元のコードに直ちに戻ります。Exit
ステートメントの後のステートメントは実行されません。 同じプロシージャ内に複数のExit
ステートメントを含めることができます。また、同じプロシージャでReturn
ステートメントとExit
ステートメントを混在させることができます。プロシージャに
Return
またはExit
ステートメントがない場合は、プロシージャ本体の最後のステートメントに続くEnd Sub
、End Function
、End Get
、またはEnd Set
ステートメントで終了します。End
ステートメントは、呼び出し元のコードに直ちに制御を返します。 プロシージャには、End
ステートメントを 1 つだけ含めることができます。
パラメーターと引数
ほとんどの場合、プロシージャは呼び出すたびに異なるデータを操作する必要があります。 この情報は、プロシージャ呼び出しの一部としてプロシージャに渡すことができます。 プロシージャは 0 個以上のパラメーターを定義します。各 パラメーターは、渡す必要がある値を表します。 プロシージャ定義の各パラメーターに対応するのは、プロシージャ呼び出しの 引数 です。 引数は、特定のプロシージャ呼び出しで対応するパラメーターに渡す値を表します。
プロシージャの種類
Visual Basic では、いくつかの種類のプロシージャを使用します。
Sub プロシージャはアクションを 実行しますが、呼び出し元のコードに値を返しません。
イベント処理プロシージャは
Sub
プロシージャであり、ユーザー アクションまたはプログラム内の発生によって発生したイベントに応答して実行されます。関数プロシージャは、 呼び出し元のコードに値を返します。 戻る前に他のアクションを実行できます。
C# で記述された一部の関数は 、参照戻り値を返します。 関数呼び出し元は戻り値を変更でき、この変更は呼び出されたオブジェクトの状態に反映されます。 Visual Basic 2017 以降では、Visual Basic コードは参照戻り値を使用できますが、参照によって値を返すことはできません。 詳細については、「 参照戻り値」を参照してください。
プロパティ プロシージャは、 オブジェクトまたはモジュールのプロパティの値を返し、割り当てます。
演算子プロシージャは、 オペランドの一方または両方が新しく定義されたクラスまたは構造体である場合の標準演算子の動作を定義します。
Visual Basic のジェネリック プロシージャ は、通常のパラメーターに加えて 1 つ以上の 型パラメーター を定義するため、呼び出し元のコードは、呼び出しを行うたびに特定のデータ型を渡すことができます。
プロシージャと構造化コード
アプリケーション内のすべての実行可能コード行は、 Main
、 calculate
、 Button1_Click
など、いくつかのプロシージャ内にある必要があります。 大きなプロシージャをより小さなプロシージャに分割すると、アプリケーションの読みやすくなります。
プロシージャは、頻繁に使用される計算、テキストとコントロールの操作、データベース操作などの繰り返しまたは共有タスクを実行する場合に便利です。 コード内のさまざまな場所からプロシージャを呼び出すことができるので、アプリケーションの構成要素としてプロシージャを使用できます。
プロシージャを使用してコードを構成すると、次の利点があります。
プロシージャを使用すると、プログラムを個別の論理ユニットに分割できます。 個別のユニットは、プロシージャなしでプログラム全体をデバッグするよりも簡単にデバッグできます。
あるプログラムで使用する手順を開発した後は、他のプログラムで使用できます。多くの場合、ほとんどまたはまったく変更できません。 これは、コードの重複を回避するのに役立ちます。
こちらも参照ください
.NET