ExcelVBAを使いこなすには変数をどれだけうまく使えるか
にかかっているといっても過言ではありません。
今まで縦に変数を動かせましたが、今回は縦と横に動かします。
下の図をSheet2のA列に一列に1から100まで並べ替えます。
これを変換するVBAコードは次の通りです。
Sub 変換()
Dim a As Integer
Dim b As Integer
Dim c As Integer
a = 1
c = 1
Worksheets(“Sheet1”).Activate
Do Until Cells(a, 1).Value = “”
For b = 1 To 10
Worksheets(“Sheet2”).Cells(c, 1).Value = Cells(a, b).Value
c = c + 1
Next b
a = a + 1
Loop
End Sub
これを理解するには王道はありません。
aが1のときbとcはどのように数値が変化して,どのセルを参照しているのか一つずつ確認します。
ちなみに、aが1のとき、bは1~10まで変化します。
cはWorksheets(“Sheet2”).Cells(c, 1).Value = Cells(a, b).Valueを繰り返した数だけ
一つずつ増えていきます。
図でまとめると次のようになります。