エクセルVBAで変数に値を代入時、forループ中の値をくっつけて変数を指定できますでしょうか。 Dim i as Long Dim cnt1 as Long Dim cnt2 as Long Dim cnt3 as Long

Visual Basic | Excel17閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

0
画像

何も指定しない場合は0スタートなのですけども、シックリこない、1から始めたいという事ならば Sub Sample() Dim abc(1 To 5) As String Dim i As Long For i = 1 To 5 abc(i) = "[" & i * 100 & "]" Next i MsgBox abc(2) End Sub な感じになります。

ThanksImg質問者からのお礼コメント

皆様、早速のアドバイスありがとうございました。 配列を使えばいいというのは盲点でした。Cでは文字結合出来たはず・・・。 と実現する方法にばかり目が行ってしまいました。 今回は一番早く、実現し易い案を戴きました方をベストアンサーに選ばせて戴きました。 ありがとうございました。

お礼日時:6/18 17:05

その他の回答(2件)

0

どちらかというと配列の考え方ではないでしょうか、 変数名に文字結合は使えないです。 Sub test() Dim cnt(1 To 5), i As Long For i = 1 To 5 cnt(i) = "cnt" & i & ":" & i * 100 Next i MsgBox Join(cnt, vbCrLf) End Sub

画像
0

面白い発想ですね。 でも残念ながら cnt & i というやり方はできません。 どういう用途を想定しているのか分かりませんが、配列では駄目でしょうか。 Dictionaryならもう少し近いものができそうです。

Sub Sample() Dim d As Object Set d = CreateObject("Scripting.Dictionary") Dim i As Long For i = 1 To 5 d.Add CStr(i), i * 100 Next Debug.Print d("1") Debug.Print d("2") For i = 3 To 5 Debug.Print d(CStr(i)) Next End Sub