パラメーター リスト (Visual Basic)Parameter List (Visual Basic)

プロシージャが呼び出されるときに予期されるパラメーターを指定します。Specifies the parameters a procedure expects when it is called. 複数のパラメーターはコンマで区切られます。Multiple parameters are separated by commas. 1つのパラメーターの構文を次に示します。The following is the syntax for one parameter.

構文Syntax

[ <attributelist> ] [ Optional ] [{ ByVal | ByRef }] [ ParamArray ]
parametername[( )] [ As parametertype ] [ = defaultvalue ]

指定項目Parts

attributelist
省略可。Optional. このパラメーターに適用される属性の一覧。List of attributes that apply to this parameter. 属性リストは山かっこ ("<" と ">") で囲む必要があります。You must enclose the Attribute List in angle brackets ("<" and ">").

Optional
省略可。Optional. プロシージャを呼び出すときに、このパラメーターが必要ないことを指定します。Specifies that this parameter is not required when the procedure is called.

ByVal
省略可。Optional. プロシージャが、呼び出し元のコードの対応する引数の基になる変数要素を置換または再割り当てできないことを指定します。Specifies that the procedure cannot replace or reassign the variable element underlying the corresponding argument in the calling code.

ByRef
省略可。Optional. プロシージャが、呼び出し元のコード自体と同じように、呼び出し元のコード内の基になる変数要素を変更できることを指定します。Specifies that the procedure can modify the underlying variable element in the calling code the same way the calling code itself can.

ParamArray
省略可。Optional. パラメーターリストの最後のパラメーターが、指定されたデータ型の要素のオプションの配列であることを指定します。Specifies that the last parameter in the parameter list is an optional array of elements of the specified data type. これにより、呼び出し元のコードは、プロシージャに任意の数の引数を渡すことができます。This lets the calling code pass an arbitrary number of arguments to the procedure.

parametername
必須。Required. パラメーターを表すローカル変数の名前。Name of the local variable representing the parameter.

parametertype
Option StrictOnの場合は必須です。Required if Option Strict is On. パラメーターを表すローカル変数のデータ型。Data type of the local variable representing the parameter.

defaultvalue
Optional パラメーターに必要です。Required for Optional parameters. パラメーターのデータ型に評価される定数または定数式。Any constant or constant expression that evaluates to the data type of the parameter. 型が Object、クラス、インターフェイス、配列、または構造体の場合、既定値は Nothingのみ可能です。If the type is Object, or a class, interface, array, or structure, the default value can only be Nothing.

コメントRemarks

パラメーターは、かっこで囲まれ、コンマで区切られます。Parameters are surrounded by parentheses and separated by commas. パラメーターは任意のデータ型で宣言できます。A parameter can be declared with any data type. parametertypeを指定しない場合、既定で Objectが使用されます。If you do not specify parametertype, it defaults to Object.

呼び出し元のコードがプロシージャを呼び出すと、必要な各パラメーターに引数が渡されます。When the calling code calls the procedure, it passes an argument to each required parameter. 詳細については、「パラメーターと引数の違い」を参照してください。For more information, see Differences Between Parameters and Arguments.

呼び出し元のコードが各パラメーターに渡す引数は、呼び出し元のコード内の基になる要素へのポインターです。The argument the calling code passes to each parameter is a pointer to an underlying element in the calling code. この要素が不変(定数、リテラル、列挙型、または式) の場合、どのコードでも変更することはできません。If this element is nonvariable (a constant, literal, enumeration, or expression), it is impossible for any code to change it. 変数要素 (宣言された変数、フィールド、プロパティ、配列要素、または構造体要素) の場合は、呼び出し元のコードで変更できます。If it is a variable element (a declared variable, field, property, array element, or structure element), the calling code can change it. 詳細については、「変更可能な引数と変更できない引数の違い」を参照してください。For more information, see Differences Between Modifiable and Nonmodifiable Arguments.

変数要素が ByRef渡された場合は、プロシージャでも変更できます。If a variable element is passed ByRef, the procedure can change it as well. 詳細については、「引数を値で渡す方法と参照渡しの違い」を参照してください。For more information, see Differences Between Passing an Argument By Value and By Reference.

ルールRules

  • 内側.Parentheses. パラメーターリストを指定する場合は、かっこで囲む必要があります。If you specify a parameter list, you must enclose it in parentheses. パラメーターがない場合でも、空のリストを囲むかっこを使用できます。If there are no parameters, you can still use parentheses enclosing an empty list. これにより、要素がプロシージャであることを明確にすることで、コードの読みやすさが向上します。This improves the readability of your code by clarifying that the element is a procedure.

  • 省略可能なパラメーター。Optional Parameters. パラメーターで Optional 修飾子を使用する場合は、リスト内の後続のすべてのパラメーターも省略可能であり、Optional 修飾子を使用して宣言されている必要があります。If you use the Optional modifier on a parameter, all subsequent parameters in the list must also be optional and be declared by using the Optional modifier.

    省略可能なすべてのパラメーター宣言では、defaultvalue 句を指定する必要があります。Every optional parameter declaration must supply the defaultvalue clause.

    詳細については、「省略可能なパラメーター」を参照してください。For more information, see Optional Parameters.

  • パラメーター配列。Parameter Arrays. ParamArray パラメーターには ByVal を指定する必要があります。You must specify ByVal for a ParamArray parameter.

    同じパラメーターリストで OptionalParamArray の両方を使用することはできません。You cannot use both Optional and ParamArray in the same parameter list.

    詳細については、「パラメーター配列」を参照してください。For more information, see Parameter Arrays.

  • 渡すメカニズム。Passing Mechanism. すべての引数の既定の機構は ByValです。これは、プロシージャが基になる変数要素を変更できないことを意味します。The default mechanism for every argument is ByVal, which means the procedure cannot change the underlying variable element. ただし、要素が参照型の場合、このプロシージャでは、オブジェクト自体を置き換えることも再割り当てできない場合でも、基になるオブジェクトの内容やメンバーを変更できます。However, if the element is a reference type, the procedure can modify the contents or members of the underlying object, even though it cannot replace or reassign the object itself.

  • パラメーター名。Parameter Names. パラメーターのデータ型が配列である場合は、parametername の直後にかっこを入力します。If the parameter's data type is an array, follow parametername immediately by parentheses. パラメーター名の詳細については、「宣言された要素名」を参照してください。For more information on parameter names, see Declared Element Names.

Example

次の例は、2つのパラメーターを定義する Function プロシージャを示しています。The following example shows a Function procedure that defines two parameters.

Public Function HowMany(ByVal ch As Char, ByVal st As String) As Integer
End Function
Dim howManyA As Integer = HowMany("a"c, "How many a's in this string?")

参照See also