| 
    
     |  | こんにちは。 
 Rows.Count とは何か?
 Cells(Rows.Count, 列) とは何か?
 Cells(Rows.Count, 列).End(xlUp) とは何か?
 Cells(Rows.Count, 列).End(xlUp).Row とは何か?
 
 というように考えていくと、少しは解り易いかもしれません。
 
 たぶん、i-deさんが理解できないのは、i-deさんが想像している削除の順番と、このプログラムで削除する順番が逆だから、混乱しているのでしょうね。
 
 行を削除すると、その行より下の行は、すべて上に移動(シフト)します。
 だから、上から順に削除しようとすると、カウンタの処理が少し面倒になります。
 逆に、下から順に削除していくと、その行を処理(削除)した後はその上の行を処理することになるので、その行より下の行が上に上がっても上がらなくても、カウンタの処理を変えなくて済みます。
 う〜〜〜ん、我ながら解りにくい説明だな(苦笑)
 
 まぁ、そんなわけで、行を順に調べて、条件により追加や削除をする場合は、下から順に調べるほうが、何かと楽な場合が多いのです。
 
 これを踏まえると、
 > 特にTo〜Step文の数値がなぜ3と-1なのかがわかりません。
 これも解りやすいのではないでしょうか。
 
 |  |