Dim i As Long
Dim rows As Long
Dim rng3 As Range
rows = rng3.rows.Count
For i = rows To 1 Step (-1)
このループがどのように機能するか知っている人はいますか? の意味が分からず困っていrows To 1 Step (-1)
ます。
Dim i As Long
Dim rows As Long
Dim rng3 As Range
rows = rng3.rows.Count
For i = rows To 1 Step (-1)
このループがどのように機能するか知っている人はいますか? の意味が分からず困っていrows To 1 Step (-1)
ます。
高い数から各反復を1
追加するには (-1)
注:数学的論理のANDは+
-
-
もしそうrows = 10
なら
for i = 10 to 1 step -2
各ループサイクルから10 to 1
減算 することからループバックすることを意味します。2
i
ループ内に追加するDebug.Print i
と、より良い手がかりが得られる場合があります。
Immediate Window
注: VBEメニューバーからCTRL+Gまたはを押してオンにしますView => Immediate Window
各サイクルで 3 ずつ増加するループの例。
for i = 1 to 10 step 3
debug.print i
next i
使用法
ステップバック手法は、主にスプレッドシートから行を削除するときに使用されます。
実際のロジックを確認するには、次を参照してください
行を削除するときは、多くの場合、最後から開始して後ろに進むのが一般的な方法です。これは、行がスキップされないようにするためです。
Dim i As Long
Dim rows As Long
Dim rng3 As Range
rows = rng3.rows.Count
For i = rows To 1 Step (-1)
'delete row if "delete" is in column 1
If rng3.cells(i,1).Value = "delete" Then
rng3.Rows(i).EntireRow.Delete
End If
next i