Expression は値であるため、代入式のターゲットにすることはできません。Expression is a value and therefore cannot be the target of an assignment

ステートメントが式に値を代入しようとしています。A statement attempts to assign a value to an expression. 実行時には、書き込み可能な変数、プロパティ、または配列要素にのみ値を割り当てることができます。You can assign a value only to a writable variable, property, or array element at run time. 次の例は、このエラーがどのように発生するかを示しています。The following example illustrates how this error can occur.

Dim yesterday As Integer
ReadOnly maximum As Integer = 45
yesterday + 1 = DatePart(DateInterval.Day, Now)
' The preceding line is an ERROR because of an expression on the left.
maximum = 50
' The preceding line is an ERROR because maximum is declared ReadOnly.

同様の例は、プロパティや配列要素にも当てはまります。Similar examples could apply to properties and array elements.

間接アクセス。Indirect Access. 値型を使用して間接的にアクセスすると、このエラーが発生することもあります。Indirect access through a value type can also generate this error. を通じPoint Locationて間接的にアクセスすることによっての値を設定しようとする次のコード例について考えてみます。Consider the following code example, which attempts to set the value of Point by accessing it indirectly through Location.

' Assume this code runs inside Form1.
Dim exitButton As New System.Windows.Forms.Button()
exitButton.Text = "Exit this form"
exitButton.Location.X = 140
' The preceding line is an ERROR because of no storage for Location.

前の例の最後のステートメントは、 Point Locationプロパティによって返される構造体の一時的な割り当てのみを作成するため、失敗します。The last statement of the preceding example fails because it creates only a temporary allocation for the Point structure returned by the Location property. 構造体は値型であり、ステートメントの実行後は、一時的な構造体は保持されません。A structure is a value type, and the temporary structure is not retained after the statement runs. この問題を解決するには、のLocation変数を宣言して使用します。これにより、 Point構造体に対してより永続的な割り当てが作成されます。The problem is resolved by declaring and using a variable for Location, which creates a more permanent allocation for the Point structure. 次の例は、前の例の最後のステートメントを置き換えることができるコードを示しています。The following example shows code that can replace the last statement of the preceding example.

Dim exitLocation as New System.Drawing.Point(140, exitButton.Location.Y)
exitButton.Location = exitLocation

エラー ID: BC30068Error ID: BC30068

このエラーを解決するにはTo correct this error

  • ステートメントによって式に値が割り当てられた場合は、式を1つの書き込み可能な変数、プロパティ、または配列要素に置き換えます。If the statement assigns a value to an expression, replace the expression with a single writable variable, property, or array element.

  • ステートメントが値型 (通常は構造体) を介して間接的にアクセスする場合は、値型を保持する変数を作成します。If the statement makes indirect access through a value type (usually a structure), create a variable to hold the value type.

  • 変数に適切な構造 (またはその他の値型) を割り当てます。Assign the appropriate structure (or other value type) to the variable.

  • 変数を使用してプロパティにアクセスし、値を割り当てます。Use the variable to access the property to assign it a value.

関連項目See also