エクセルマクロで、指定した日付範囲以外を削除するVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
指定した日付範囲以外を削除
以下のExcelVBAを実行すると、指定範囲のデータ以外を削除します。
Sub 期間指定して行削除()
Dim Day(2) As Variant
Dim Mysymbol(2) As Variant
Dim i As Long
'開始日
Day(1) = Format(Range("F1"), "yyyy/mm/dd")
Mysymbol(1) = "<"
'終了日
Day(2) = Format(Range("H1"), "yyyy/mm/dd")
Mysymbol(2) = ">"
'フィルター設定
Range("A1").AutoFilter
Application.ScreenUpdating = False
For i = 1 To 2
'フィルター抽出
ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
Field:=3, _
Criteria1:=Mysymbol(i) & Day(i), Operator:=xlAnd
'フィルターで絞ったデータ削除
Application.DisplayAlerts = False
Range("A1").CurrentRegion.Offset(1, 0).Resize(Range("A1"). _
CurrentRegion.Rows.Count - 1).Delete
ActiveSheet.ShowAllData
Application.DisplayAlerts = True
Next i
Application.ScreenUpdating = True
End Sub
マクロ実行前
セルF1に「開始日」、セルH1に「終了日」を入力します。
今回の場合は、「2021/8/5~2021/8/10」のデータのみを残し、
それ以外のデータは削除する処理となります。
マクロ実行後
「For」の1回目のループで、「開始日」より前の日付の行を削除します。
「For」の2回目のループで、「終了日」以降のデータを削除します。
指定期間のデータのみ残ります。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】日付処理を自動化する使用例まとめ
【エクセルマクロ】日付処理を自動化する:使用例17選
...
「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!
リンク