【エクセルマクロ】指定した日付範囲以外を削除する

vba-指定した日付の範囲以外を削除-アイキャッチ ExcelVBA

エクセルマクロで、指定した日付範囲以外を削除する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自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!