|
▼ちょろすけ さん:
MyQty + i を MyQty1 だったり MyQty2 だったり MyQty3 だったり、
そう【期待】してますね?
残念ながら、エクセルVBAは、そう解釈してくれません。
つまり、MyQty + i は MyQty という名前のLong型変数に入っている値 + i とみなされますから
ループの中で 1 -> 2 -> 3 となっていきます。
"MyQty" という文字列 と i という数字を組み合わせた MyQty1 や MyQty2 や MyQty3 というものを
取得する方法は無きにしも非ずですが、コンパイラーの盲点をつく、トリッキーなコードになりますので
紹介しません。(ご存じだったとしても使わないほうがいいと思います)
ですから、ここは、MyQty1 等々を直接指定して参照するべきです。
この処理をするのに、いちいちセルをSelectする必要はありませんが、そこは
そちらのコードのままにしてあります。
Sub Sample1()
Dim MyQty1 As Long, MyQty2 As Long, MyQty3 As Long
Dim d As Variant
MyQty1 = 111
MyQty2 = 222
MyQty3 = 333
For Each d In Array(MyQty1, MyQty2, MyQty3)
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = d
Next d
End Sub
Sub Sample2()
Dim i As Long, MyQty1 As Long, MyQty2 As Long, MyQty3 As Long
MyQty1 = 111
MyQty2 = 222
MyQty3 = 333
For i = 1 To 3
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Array(MyQty1, MyQty2, MyQty3)(i - 1)
Next i
End Sub
|
|