プログラムは1行づつ上から下に向かって実行されます。この「Do~Loop」とは、この上から下への流れを変える手段です。具体的には「Do」から「Loop」の間をグルグル回転しろという命令です。次の構文を参照してください。この時点で意味は理解しなくても結構です。
Dim i1 As Integer
Dim i2 As Integer
Dim i3 As Long
i1 = 3
i2 = 3
i3 = 0
Do Until Cells(i1, i2) = ""
i3 = i3 + Cells(i1, i2)
i1 = i1 + 1
Loop
上記の構文の7行目以降に「Do」で始まり「Loop」で終わる部分があります。これがグルグル回れの命令の例になります。
グルグル回すのですが、いつまでも回すわけにはいかないので、終わらせる条件も指定してあります。分かりずらいかと思いますので、1行目から訳してみます。
1行目 整数-32,768 ~ +32,767の値を入れることのできる「i1」という入れ物を準備しろ。
2行目 整数-32,768 ~ +32,767の値を入れることのできる「i2」という入れ物を準備しろ。
3行目 整数-2,147,483,648~2,147,483,647の範囲の値を入れることのできる「i3」という入れ物を準備しろ。
4行目 「i1」という入れ物に整数の3を入れろ
5行目 「i2」という入れ物に整数の3を入れろ
6行目 「i3」という入れ物に整数の0を入れろ
7行目 セルの上から「i1」に指定する行&セルの左から「i2」に指定する列(ここではi1に3が入っているので上から3行目、i2にも3が入っているのでC列→つまりC3のセル)が空欄(→""のこと)になるまで、「Loop」までの間にある命令を実行しろ。
8行目 セルの「i1」番目の縦の行&「i2」番目の列にあるセルの値を、「i3」に加えろ。
9行目 i1に1を加えろ。
10行目 「Do」に戻れ
7行目 セルの上から「i1」番目の行&セルの左から「i2」番目の列(ここではi1に4が入っている(9行目により)ので上から4行目、i2にも3が入っているのでC列→つまりC4の列)が空欄でなければ以下を実行。
プログラムの意味が分かったところで、このVBAがどのようなワークシートで使われるのかを見ていただくために、下にある「練習用.xlsm」ダウンロードして表を開いてください。
会社の設定する要件やセキュリティの厳しさによりダウンロードできない場合は、ダウンロードできる環境に整えてください(管理者に相談等)。
大変申し訳ありませんが、どうしてもダウンロードできない場合は「表の見本.jpg」を、別窓等で参照できるようにして、次にお進みください。
Do~Loopとは2へ続きます。