実行時に1つの単位として使われるコードの集まりです。通常、プロシージャの名前は、モジュール レベルで定義します。プロシージャの中にプロシージャを置くなど、ネストを行うことはできません。
プロシージャ内で宣言、確保された変数はローカル変数として扱われ、プロシージャを抜け出すと同時に破棄されます。これに対し、モジュールレベルで定義された変数はグローバル変数とみなされ、プロシージャ内、外に問わずに使用できます。
すでにグローバル領域に定義された変数と重複した識別子をもつローカル変数を使用したい場合はプロシージャ内でDim宣言をして下さい。プロシージャ内で宣言がなく、グローバル変数として定義されている場合はグローバル変数として扱われます。