【Excelマクロ】過去◯日以内のデータだけ表示するマクロ

Excelで日付付きのデータを管理していると、「最近のデータだけを抽出したい」という場面がよくあります。

例えば、過去7日間の売上だけ表示する30日以内の申込だけ確認するなど、期間を絞った確認作業は非常に多くの現場で行われています。

こうした作業を手動で毎回フィルター設定するのは面倒です。

そこで、マクロで「◯日以内のデータだけを表示する処理」を自動化してみましょう。

基本の考え方とサンプルコード

ここでは、A列に日付データがあると仮定して、過去7日以内のデータのみを表示するマクロを紹介します。

次のようにコードを書きます。

Sub ShowRecentData()

    Dim ws As Worksheet
    Dim i As Long
    Dim limitDate As Date
    Dim today As Date

    Set ws = ActiveSheet
    today = Date
    limitDate = today - 7

    ' 1行目は見出しとし、2行目からチェック
    For i = 2 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        ' A列の日付が limitDate より前なら非表示
        If ws.Cells(i, 1).Value < limitDate Then
            ws.Rows(i).EntireRow.Hidden = True
        Else
            ws.Rows(i).EntireRow.Hidden = False
        End If
    Next i

    MsgBox "過去7日以内のデータだけを表示しました。"

End Sub

このコードは、現在の日付から7日引いた日付を「基準」として、それよりも古い日付の行を非表示にしています。

解説

  • Date は、今日の日付を取得するVBA関数です。
  • today - 7 によって、「7日前の日付」が自動で求まります。
  • Rows(i).EntireRow.Hidden = True で行を非表示にできます。
  • 1行目が見出しなら、2行目以降から繰り返し処理するようにします。

処理後は、過去7日以内のデータだけが見える状態になります。

表示する日数を入力できるようにする

実際の業務では、「7日」「30日」など、条件を変えることもよくあります。

そこで、日数を入力する仕組みも加えてみます。

Sub ShowRecentByInput()

    Dim ws As Worksheet
    Dim i As Long
    Dim limitDate As Date
    Dim today As Date
    Dim days As Variant

    days = InputBox("何日以内のデータを表示しますか?", "表示日数の入力")

    If Not IsNumeric(days) Then
        MsgBox "数値を入力してください。", vbExclamation
        Exit Sub
    End If

    Set ws = ActiveSheet
    today = Date
    limitDate = today - CLng(days)

    For i = 2 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        If ws.Cells(i, 1).Value < limitDate Then
            ws.Rows(i).EntireRow.Hidden = True
        Else
            ws.Rows(i).EntireRow.Hidden = False
        End If
    Next i

    MsgBox "過去" & days & "日以内のデータだけを表示しました。"

End Sub

このようにすれば、ユーザー自身が必要に応じて日数を設定できるようになります。

入力欄を設けるメリット

  • 担当者が自由に条件を調整できる
  • 複数ファイルで同じコードを再利用しやすい
  • 「固定化されたマクロ」ではなく、「柔軟に使えるマクロ」になる

実装するメリット

このマクロを業務に組み込むことで、次のようなメリットがあります。

  • 過去データをすばやく確認できる
  • 日付のフィルター設定の手間がなくなる
  • 見やすく・効率的なデータ管理が可能になる
  • 不要な情報を非表示にして作業の集中力を高められる

特に、毎日新しいデータが追加されるような運用では、「新しいデータだけ見る」という仕組みがとても有効です。

また、行を非表示にするだけなので、元のデータは削除されず、いつでも元に戻せるという安心感もあります。

まとめ

日付付きデータの管理では、「◯日以内だけ見たい」「古いのは非表示にしたい」と感じる場面が頻繁にあります。

そうしたとき、今回のようなマクロを使えば、一瞬で必要な情報だけを絞り込むことが可能です。

初期のうちは「7日」など固定でもよいですが、さまざまなパターンがある場合には、入力方式にして柔軟性を持たせるのがおすすめです。

マクロで環境を整えることで、作業のスピードと正確さの両方を手に入れましょう。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール