使用するデータは A-004 です。
課 題
今までの課題では For~Next を使って 2~201行目までと移動する行番号が固定されていました。
しかし実際には店舗毎に設置台数が異なったり、設置台数の増減が発生したり、機種数が新台・撤去台により変更が発生します。
For i = 2 To 201 の 201 の部分を手動でその都度変更するのは使い勝手が悪くなります。
ここでは、「VBAの練習5」の課題と内容は同じですが台数が変動になっても大丈夫なコードを作成してみましょう。
解 答
解 説
Do While WS1.Cells(i, “A”).Value <> “” でSheet1のA列が空白ではない間は繰り返す という意味です。
For~Next では自動的に i が 2→3→4→5 と数値が加算されますが、
Do~Loopでは数値が加算される仕組みがありません。
そこで Loopの前に i = i + 1 を記述する必要があります。
以下は While を使用しない場合です。
Do~Loop だけでは、処理を止まる仕組みがありません。
そこで以下を追加します。
If WS1.Cells(i, “A”).Value = “” Then Exit Do
Sheet1のA列が空白になったら DoをExit(脱出)させています。
Do~Loopの繰り返し処理も実務では良く使用します。
覚えておきましょう。