Excel VBA(マクロ)で業務改善
作成スキルを修得しましょう
パチンコ業界に特化した内容です

VBAの練習6

使用するデータは A-004 です。

課 題

今までの課題では For~Next を使って 2~201行目までと移動する行番号が固定されていました。
しかし実際には店舗毎に設置台数が異なったり、設置台数の増減が発生したり、機種数が新台・撤去台により変更が発生します。
For i = 2 To 201 の 201 の部分を手動でその都度変更するのは使い勝手が悪くなります。
ここでは、「VBAの練習5」の課題と内容は同じですが台数が変動になっても大丈夫なコードを作成してみましょう。

ヒント
Do~Loopステートメントを使用します。

Do 繰り返しの条件
  実行したい処理
Loop

繰り返しの条件は次のように表します。
 While □□ →□□の間は繰り返す
 Until □□ →□□になるまで繰り返す

解 答

解 説

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の繰り返し処理も実務では良く使用します。
覚えておきましょう。