| 
    
     |  | ▼ちょろすけ さん: 
 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
 
 
 |  |