Subとても多いエラーです。整数型に文字列型を代入しようとしたり、文字列型にオブジェクトを指定するような"型違い"で発生するエラーです。ほかにも、次のようなケースで発生します。SubDateValue関数は、引数に"日付を表す文字列"を指定します。InputBoxで[キャンセル]ボタンがクリックされると空欄("")が返ります。空欄は"日付を表す文字列"ではありませんので、DateValue関数にとって「値が違います」となります。次のように独自のプロシージャに渡す引数でもエラーになります。Subただ、VBAは"型の自動変換"が特徴のひとつです。本来は数値を指定しなければいけないところに、文字列型のデータが入る(ように見える)こともあります。次のようなコードです。Subデータ型に厳しいプログラミング言語を学んだ方なら、信じられないようなコードでしょう。VBAでは正常に実行できます。MsgBoxの引数は文字列型を受け取るはずです。N.ToString」みたいにやりたくなるところです。VBAでは正常に実行できます。VBAは、可能であれば、自動的に型変換が行われるからです。似たようなエラーに「プロシージャの呼び出し、または引数が不正です」があります。こちらは、型は合っているけど、内容的に値が不適切なときに発生します。