不要な行の削除③

Pocket

金額が0の行を削除するコードです。

マクロの記録したときのコードです。
Rows(“4:4”).Select
Selection.Delete Shift:=xlUp

マクロで記録したものを
Rows(“b:b”).Select
Selection.Delete Shift:=xlUp
と変更してもうまく動きません。ですので若干の修正をします。

Rows(“4:4”).Select これは4行目の全てのセルを選択していますが、
これを
Cells(b, 1).Select 
とA列のみ選択するように変更します。

次に
Selection.Delete Shift:=xlUp

Selection.EntireRow.Delete Shift:=xlUp
と、EntireRow.を追加します。
EntireRowは行全体という意味です。

E列が0の行のA列を選択し、その行の全体を削除します。

完成したコードです。
Worksheets(“Sheet2”).Activate
For b = a To 2 Step -1
If Cells(b, 5).Value = 0 Then
Cells(b, 1).Select
Selection.EntireRow.Delete Shift:=xlUp
End If
Next b

aはDo Loopでaは18まで変化します。
ですので、bは18から2へと1ずつ減少していきます。
Cells(b, 5).ValueつまりE列が0のとき、その行全体を削除します。

bが18のときは、E列が0なので、A18を選択し、行全体を削除
bが17のときは、E列が0なので、A17を選択し、行全体を削除
bが16のときは、E列が0ではないので、IF関数の条件を満たさず次へ
・・・
bが3のときは、E列が0ではないので、IF関数の条件を満たさず次へ
bが2のときは、E列が0ではないので、IF関数の条件を満たさず次へ
bが2までしか動かないので、FOR関数は終了し、マクロも終了します。

For関数を使うのは、行を削除する場合だけなので、不要な仕訳を削除するときは
金額で並べ替えて0の仕訳をまとめて削除する方法を使う場合は、覚える必要は
ありませんが、どうせなら全自動の方が楽でいいと思います。