VBA で For Each文の注意点
試してみればすぐ分かることなんだけど、下のように書いても、A1:A5に「1」は入力されません。
Sub test() Dim tmp As Variant For Each tmp In Range("A1:A5") tmp = 1 Next tmp End Sub
この理由は、変数tmpに入れられるものは、Rangeオブジェクトの参照ではなく、コピーだからです。ですから、そうしたい場合は、次のようにかく必要がある。
Sub test() Dim tmp As Variant For Each tmp In Range("A1:A5") Range(tmp.address) = 1 Next tmp End Sub