ループの境界とステップの句が同じ型に変換されないため、'<variablename>' の型を推論できません
更新 : 2007 年 11 月
For...Next ループを記述しましたが、次の条件が満たされているため、コンパイラはそのループの中でループ制御変数のデータ型を推論できません。
ループ コントロール変数のデータ型が As 句で指定されていません。
ループ境界とステップ変数に少なくとも 2 つのデータ型が含まれています。
標準的なデータ型変換が存在しません。
したがって、コンパイラはループ コントロール変数のデータ型を推論できません。
以下の例では、ステップ変数が文字、両方のループ境界が整数になっています。文字と整数の間には標準的な変換がないので、このエラーが生成されます。
Dim stepVar = "1"c
Dim m = 0
Dim n = 20
' Not valid.
' For i = 1 To 10 Step stepVar
' Loop processing
' Next
エラー ID: BC30982
このエラーを解決するには
必要に応じてループ境界とステップ変数の型を変更し、少なくともいずれか 1 つの型が、他の型から見て拡大変換に相当する型になるようにします。上の例では、stepVar の型を Integer に変換します。
Dim stepVar = 1
または
Dim stepVar As Integer = 1
明示的な変換関数を使用して、ループ境界とステップ変数を適切な型に変換します。上の例では、Val 関数を stepVar に適用します。
For i = 1 To 10 Step Val(stepVar) ' Loop processing Next