Sub プロシージャ (Visual Basic)Sub procedures (Visual Basic)

Sub プロシージャは、Sub ステートメントと End Sub ステートメントで囲まれた一連の Visual Basic ステートメントです。A Sub procedure is a series of Visual Basic statements enclosed by the Sub and End Sub statements. Sub プロシージャはタスクを実行した後、呼び出し元のコードに制御を戻しますが、呼び出し元のコードに値は返しません。The Sub procedure performs a task and then returns control to the calling code, but it does not return a value to the calling code.

プロシージャが呼び出されるたびに、そのステートメントが実行されます。Sub ステートメントの後の実行可能な最初のステートメントから始まり、最初に出現した End SubExit Sub、または Return ステートメントで終了します。Each time the procedure is called, its statements are executed, starting with the first executable statement after the Sub statement and ending with the first End Sub, Exit Sub, or Return statement encountered.

Sub プロシージャは、モジュール、クラス、構造体で定義できます。You can define a Sub procedure in modules, classes, and structures. 既定では Public であるため、プロシージャが定義されているモジュール、クラス、または構造体にアクセスできるアプリケーション内のどこからでも呼び出すことができます。By default, it is Public, which means you can call it from anywhere in your application that has access to the module, class, or structure in which you defined it. "メソッド" という用語は、プロシージャが定義されているモジュール、クラス、または構造体の外部からアクセスされる Sub または Function プロシージャを示します。The term method describes a Sub or Function procedure that is accessed from outside its defining module, class, or structure. 詳細については、「プロシージャ」を参照してください。For more information, see Procedures.

Sub プロシージャは、呼び出し元のコードから渡される定数、変数、式などの引数を受け取ることができます。A Sub procedure can take arguments, such as constants, variables, or expressions, which are passed to it by the calling code.

宣言の構文Declaration syntax

Sub プロシージャを宣言するための構文は次のとおりです。The syntax for declaring a Sub procedure is as follows:

[modifiers] Sub SubName[(parameterList)]
    ' Statements of the Sub procedure.
End Sub

modifiers では、アクセス レベルと、オーバーロード、オーバーライド、共有、シャドウに関する情報を指定できます。The modifiers can specify access level and information about overloading, overriding, sharing, and shadowing. 詳細については、「Sub Statement (Sub ステートメント)」をご覧ください。For more information, see Sub Statement.

パラメーターの宣言Parameter declaration

変数を宣言する場合と同様に、パラメーター名とデータ型を指定して、プロシージャの各パラメーターを宣言します。You declare each procedure parameter similarly to how you declare a variable, specifying the parameter name and data type. 引渡し方法、パラメーターが省略可能かどうか、パラメーターがパラメーター配列かどうかを指定することもできます。You can also specify the passing mechanism, and whether the parameter is optional or a parameter array.

パラメーター リストの各パラメーターの構文は次のとおりです。The syntax for each parameter in the parameter list is as follows:

[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType

パラメーターが省略可能な場合は、宣言の一部として既定値も指定する必要があります。If the parameter is optional, you must also supply a default value as part of its declaration. 既定値を指定するための構文は次のとおりです。The syntax for specifying a default value is as follows:

Optional [ByVal | ByRef]  parameterName As DataType = defaultValue

ローカル変数としてのパラメーターParameters as local variables

制御がプロシージャに渡されると、各パラメーターはローカル変数として扱われます。When control passes to the procedure, each parameter is treated as a local variable. つまり、パラメーターの有効期間はプロシージャの有効期間と同じであり、スコープはプロシージャ全体になります。This means that its lifetime is the same as that of the procedure, and its scope is the whole procedure.

呼び出しの構文Calling syntax

Sub プロシージャは、スタンドアロンの呼び出しステートメントで明示的に呼び出します。You invoke a Sub procedure explicitly with a stand-alone calling statement. 式で名前を使用して呼び出すことはできません。You cannot call it by using its name in an expression. 省略可能ではないすべての引数に値を指定する必要があり、引数リストをかっこで囲む必要があります。You must provide values for all arguments that are not optional, and you must enclose the argument list in parentheses. 引数を指定しない場合は、必要に応じてかっこを省略できます。If no arguments are supplied, you can optionally omit the parentheses. Call キーワードの使用は任意ですが、使用しないことをお勧めします。The use of the Call keyword is optional but not recommended.

Sub プロシージャの呼び出しの構文は次のとおりです。The syntax for a call to a Sub procedure is as follows:

[Call] SubName[(argumentlist)]

Sub メソッドは、これを定義しているクラスの外部から呼び出すことができます。You can call a Sub method from outside the class that defines it. まず、New キーワードを使用してクラスのインスタンスを作成するか、クラスのインスタンスを返すメソッドを呼び出す必要があります。First, you have to use the New keyword to create an instance of the class, or call a method that returns an instance of the class. 詳細については、「New Operator (New 演算子)」をご覧ください。For more information, see New Operator. 次に、次の構文を使用して、インスタンス オブジェクトに対して Sub メソッドを呼び出すことができます。Then, you can use the following syntax to call the Sub method on the instance object:


宣言と呼び出しの実例Illustration of declaration and call

次の Sub プロシージャは、アプリケーションが実行しようとしているタスクをコンピューターのオペレーターに通知し、タイム スタンプも表示します。The following Sub procedure tells the computer operator which task the application is about to perform, and also displays a time stamp. すべてのタスクの開始時にこのコードを複製するのではなく、アプリケーションはさまざまな場所から tellOperator 呼び出すだけです。Instead of duplicating this code at the start of every task, the application just calls tellOperator from various locations. 各呼び出しでは、開始されるタスクを識別する文字列を task 引数に渡します。Each call passes a string in the task argument that identifies the task being started.

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

次の例は、tellOperator の一般的な呼び出しを示しています。The following example shows a typical call to tellOperator.

tellOperator("file update")

関連項目See also