Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3570 / 76735 ←次へ | 前へ→

【78794】Re:変数と変数の結合(連結)
発言  β  - 17/1/29(日) 19:23 -

引用なし
パスワード
   ▼ちょろすけ さん:

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

1 hits

【78793】変数と変数の結合(連結) ちょろすけ 17/1/29(日) 19:07 質問[未読]
【78794】Re:変数と変数の結合(連結) β 17/1/29(日) 19:23 発言[未読]
【78795】Re:変数と変数の結合(連結) ちょろすけ 17/1/29(日) 19:43 お礼[未読]

3570 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free