質問: 0 Then Rows(i).Delete End If Next i End Sub A16行まではウインドウ枠の固定で使用しています。 なのでA16行以降でこのマクロを実行したいです。 ご指導よろしくお願いいたします。
回答: CellsやRangeによるセルの指定、Rowsによる行の指定は分かりますね? >A16行まではウインドウ枠の固定で使用しています。 >なのでA16行以降でこのマクロを実行したいです。 サンプルコードから ・A17からA列の最終行までを検索、特定の文字列がなければ、その行を削除する。 をしたいのだと判断しました。 今回の場合、A列の最終行から17行目までを降順にチェックしていきます。 (17行目から昇順にチェックしようとすると、行の削除で行番号がずれて、想定とは違う動きをする) 最終行の行番号を調べる方法はいくつかあるのですが、今回はサンプルコードと同様に >Cells(Rows.Count, "A").End(xlUp).Row とします(列指定がSからAに変更しています)。 意味は「A列の一番下のセルから、End+上キーで移動したセルの行番号」です。 そこから17列目まで降順でループさせたいので、コードとしては >For i = Cells(Rows.Count, "A").End(xlUp).Row To 17 Step -1 になります。 STEPは、ループカウンタ(今回はi)の値の変動を指定します。今回は-1を指定していますので、値を-1ずつしていきます。 参考: for-nextの挙動を知りたければ、「右クリック->ウォッチ式の追加」で、ウォッチウィンドウにiを追加した状態で、F8でステップ実行し、iの中の値がどう変化するのかを調べればわかりやすいと思います。