今日VBAで以下のコードを書いた。
Sub test1()
Dim i As Integer
i = Cells(Rows.Count, 1).End(xlUp).Row
Do While i > 0
If i Mod 2 = 0 Then
Rows(i).Delete
End If
i = i - 1
Loop
Rows(1).Insert
Columns(1).Insert
End Sub
とあるサイトの練習問題をやろうと思って書いてみたけど、今まで知らなかった事に気付いた。
「Do Until i <= 0」と「Do While i > 0」は同じ意味らしい。
「Do While i > 0」だから、当然「Do Until i < 0」だろう。
そう思って書き換えて実行したら、結果が少し違っていた。
ちょっとネットで調べてみたら、良さそうなサイトを発見。
ExcelVBAではなくAccessVBAの事が書かれていたけど、Do~Loop文の事が分かり易く書かれていた。
このページの中に以下のコードを発見。
Do While lngCount < 100 ' 1~99の間
Do Until lngCount >= 100 ' 100になるまで
どうやら「Do While」の場合は~の間、「Do Until」の場合は指定の数字になるまでだから比較演算子を変えないといけない。
「Do While」で「<」を使っていたら、「Do Until」の時は「>」ではなく「>=」を使うという事。