方法: プロシージャの複数のバージョンを定義する (Visual Basic)

同じ名前を使用し、バージョンごとに異なるパラメーター リストを使用して、"オーバーロード" することにより、複数のバージョンのプロシージャを定義できます。 オーバーロードの目的は、名前で区別する必要なく、プロシージャの密接に関連する複数のバージョンを定義することです。

詳細については、「 Procedure Overloading」を参照してください。

プロシージャの複数のバージョンを定義するには

  1. 定義するプロシージャのバージョンごとに、Sub または Function 宣言ステートメントを記述します。 すべての宣言で同じプロシージャ名を使用します。

  2. 各宣言の Sub または Function キーワードの前に Overloads キーワードを指定します。 必要に応じて、宣言で Overloads を省略することもできますが、宣言のいずれかに含めた場合は、すべての宣言に含める必要があります。

  3. 各宣言ステートメントの後に、呼び出し元のコードでそのバージョンのパラメーター リストと一致する引数が指定されたときにそのケースを処理するプロシージャ コードを記述します。 呼び出し元のコードでどのパラメーターが指定されているかをテストする必要はありません。 Visual Basic は、プロシージャの一致するバージョンに制御を渡します。

  4. プロシージャの各バージョンを、必要に応じて End Sub または End Function ステートメントで終了します。

次の例では、顧客の残高に対してトランザクションを転記する Sub プロシージャを定義します。 Overloads キーワードを使用して、プロシージャの 2 つのバージョンを定義します。1 つは顧客を名前で受け入れ、もう 1 つは口座番号で受け入れます。

Overloads Sub post(ByVal custName As String, ByVal amount As Single)
    ' Insert code to access customer record by customer name.
End Sub
Overloads Sub post(ByVal custAcct As Integer, ByVal amount As Single)
    ' Insert code to access customer record by account number.
End Sub

呼び出し元のコードは、String または Integer として顧客 ID を取得し、どちらの場合も同じ呼び出しステートメントを使用できます。

post プロシージャのこれらのバージョンを呼び出す方法については、「方法 : オーバーロードされたプロシージャを呼び出す」をご覧ください。

コードのコンパイル

オーバーロードされた各バージョンのプロシージャ名が同じであり、パラメーター リストが異なることを確認します。

関連項目