変数 '<variablename>' は、値が割り当てられる前に参照によって渡されています。

更新 : 2007 年 11 月

エラー メッセージ

変数 '<variablename>' は、値が割り当てられる前に参照によって渡されています。Null 参照の例外が実行時に発生する可能性があります。

値が代入されていない変数が、プロシージャ呼び出しによって引数として ByRef パラメータに渡されています。

変数に値が代入されない場合、変数にはそのデータ型の既定値が格納されます。参照データ型の既定値は、Nothing (Visual Basic) です。値が Nothing の参照変数を読み取ると、状況によっては NullReferenceException が発生します。

ByRef でプロシージャに引数を渡した場合、引数の基になる変数はプロシージャで変更できます。

既定では、このメッセージは警告です。警告を表示しない方法や、警告をエラーとして扱う方法の詳細については、「Visual Basic での警告の構成」を参照してください。

Error ID: BC42030

このエラーを解決するには

  • プロシージャで ByRef の引数をとおして変数に値を代入する場合に、変数に既に値が格納されているかどうかが問題にならない場合は、アクションは必要ありません。

  • 値を代入する前に引数を読み取るロジックがプロシージャ内にあり、その変数が値型である場合、プロシージャのロジックが、変数に既定値が含まれるかどうかに依存しないことを確認してください。

  • 値を代入する前に引数を読み取るロジックがプロシージャ内にあり、その変数が参照型である場合、プロシージャのロジックが Nothing の値を扱えることを確認してください。たとえば、Try...Catch...Finally ステートメント (Visual Basic) を使って NullReferenceException をキャッチできます。

参照

処理手順

Visual Basic における変数のトラブルシューティング

概念

値型と参照型

引数の値渡しおよび参照渡し

Visual Basic での変数宣言

参照

Dim ステートメント (Visual Basic)

ByRef