パラメータと引数の違い
更新 : 2007 年 11 月
プロシージャは、ほとんどの場合、呼び出されたときの状況に関する情報を必要とします。繰り返し実行されるタスクや共有されているタスクを実行するプロシージャは、呼び出されるたびに異なる情報を使用します。この情報は、プロシージャを呼び出すときに渡される変数、定数、および式から構成されています。
この情報をプロシージャに渡すために、プロシージャにはパラメータが定義され、呼び出し元のコードはそのパラメータに引数を渡します。パラメータは駐車場、引数は自動車であると考えてみてください。駐車場にはさまざまな車が駐車できるのと同様に、呼び出し元のコードは、パラメータを呼び出すたびに、同じパラメータに別の引数を渡すことができます。
パラメータ
パラメータは、プロシージャが呼び出されるときに期待する値を表します。パラメータは、プロシージャの宣言で定義されます。
Function または Sub プロシージャを定義するときは、プロシージャ名のすぐ後に、かっこで囲んだパラメータ リストを指定します。各パラメータには、名前、データ型、引き渡し方法 (ByVal または ByRef) を指定します。パラメータが省略可能であることを示すこともできます。これは、呼び出し元のコードがその値を渡す必要がないということを意味します。
各パラメータの名前は、プロシージャ内でローカル変数として扱われます。パラメータ名は、他の変数と同じように使用できます。
引数
引数は、プロシージャを呼び出すときに、プロシージャのパラメータに渡す値を表します。呼び出し元のコードは、プロシージャを呼び出すときに引数を渡します。
Function または Sub プロシージャを定義するときは、プロシージャ名のすぐ後にかっこで囲んだ引数リストを含めます。リスト内の各引数は、パラメータ リスト内の同じ位置にあるパラメータに対応します。
パラメータの定義とは異なり、引数には名前がありません。引数は式で、0 以上の変数、定数、リテラルを含めることができます。評価済みの式のデータ型は、通常は、対応するパラメータに定義されたデータ型と一致します。それ以外の場合でも、パラメータのデータ型と互換性がある必要があります。