• ベストアンサー

EXCEL VBAで教えてください。

EXCELで、4列(A~D)仕立ての表があります。D列に入力されている日付が現在より過去の場合、その行を削除するように作成したいのですが、教えていただけますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

数字を消さないで、過去の日付けを<<表示>>しているセルの行だけを削除する のであれば、このような感じで如何でしょうか。 Sub Test() Dim Rw As Long For Rw = Range("D65536").End(xlUp).Row To 1 Step -1 If IsDate(Range("D" & Rw).Text) And _ Range("D" & Rw).Value < Date Then Range("D" & Rw).EntireRow.Delete End If Next End Sub

qno
質問者

お礼

ありがとうございます。助かります!

その他の回答 (2)

回答No.2

No1です。 先ほどのでやると、日付が入っていない場合も削除されてしまいますね。 Sub testtest() For i = 40 To 1 Step -1 If Cells(i, "D") <> "" And Cells(i, "D") < Date Then Rows(i).Delete End If Next End Sub としてください。

qno
質問者

お礼

ありがとうございます。さっぱりしていてわかりやすいので試してみます。

回答No.1

仮に、データが1行目から40行目まであるとします。 Sub testtest() For i = 40 To 1 Step -1 If Cells(i, "D") < Date Then Rows(i).Delete End If Next End Sub

関連するQ&A