N004 このスコープ内で以前に参照した名前です

変数が外側のスコープで宣言されています。次に、この変数が内側のスコープで参照され、そのスコープ内で宣言されています。以下に例を示します。

Dim X As Integer
Sub MySub
   X% = 5
   Dim X As Integer   ' Illegal because the preceding assignment
                      ' statement referred to the X declared in
                      ' outer scope
End Sub

内側のスコープ内の変数の宣言を代入ステートメントの前に来るように移動するか、内側のスコープ内で変数の宣言を削除してください。内側のスコープに変数の宣言を移動すると、外側のスコープ内の変数を隠ぺいするローカル変数が作成されますが、宣言を削除すると外側のスコープを内側のスコープから参照できます。