ByRef 引数の型が一致しません
既定である ByRef (参照渡し) で渡された引数は、プロシージャで予期される正確なデータ型を持つ必要があります。 このエラーの原因と解決策は次のとおりです。
予期される型を強制できない、ある型の引数を渡しました。
たとえば、Long が必要なときに、Integer 変数を渡そうとした場合に、このエラーが発生します。 情報が失われても強制を必要とする場合、引数をそれ自体のカッコで囲んで渡すことができます。
たとえば、 Variant 引数
MyVar
を、 Integer 引数を予期するプロシージャに渡すとき、以下のように呼び出しを作成できます。Dim MyVar MyVar = 3.1415 Call SomeSub((MyVar)) Sub SomeSub (MyNum As Integer) MyNum = MyNum + MyNum End Sub
引数をそれ自体のカッコで囲むことにより、式としての評価を強制します。 この評価中に、数値の小数部分はそれを予期される引数の型に準拠するよう丸められます (切り捨てられることはありません)。 評価の結果は一時的な場所に配置され、一時的な場所への参照をプロシージャが受け取ります。 これにより、元の
MyVar
はその値を維持します。注:
変数に対して型を指定しないと、その変数は既定の型である Variant になります。 これは常に明確とは限りません。 たとえば、次のコードでは 2 つの変数が宣言されていますが、1 つ目の
MyVar
は Variant になり、2 つ目のAnotherVar
は Integer になります。Dim MyVar, AnotherVar As Integer
詳細については、該当する項目を選択し、F1 キー (Windows の場合) または HELP (Macintosh の場合) を押してください。
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。