ExcelVBA 変数の使い方(応用)①

Pocket

ExcelVBAを使いこなすには変数をどれだけうまく使えるか
にかかっているといっても過言ではありません。

今まで縦に変数を動かせましたが、今回は縦と横に動かします。

下の図をSheet2のA列に一列に1から100まで並べ替えます。
2509021
これを変換する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

これを実行すると次のようになります。
2509022

これを理解するには王道はありません。
aが1のときbとcはどのように数値が変化して,どのセルを参照しているのか一つずつ確認します。
ちなみに、aが1のとき、bは1~10まで変化します。
cはWorksheets(“Sheet2”).Cells(c, 1).Value = Cells(a, b).Valueを繰り返した数だけ
一つずつ増えていきます。
図でまとめると次のようになります。
2509023