【エクセルマクロ】同じ日付をカウントする:コピペで使えるコード

ExcelVBA_同じ日付カウント-アイキャッチ エクセルマクロで効率化する

エクセルマクロで、同じ日付をカウントするVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
せひ、お試しください。

同じ日付をカウントする

以下のExcelVBAを実行すると、日づけの個数を数えて結果を転記します。


Sub 日付個数カウント()

Dim myDic As Object
Dim myKey As Variant
Dim myItem As Variant
Dim myList As String
Dim i As Long

    Set myDic = CreateObject("Scripting.Dictionary")

    'A列 最終行までループ
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    
        myList = Cells(i, 1)

        If Not myDic.exists(myList) Then
           '重複しない日付を格納
            myDic.Add Key:=myList, Item:=1
        Else
            '日づけが重複していたら、個数カウント
            myDic(myList) = myDic(myList) + 1
        End If
    Next

    '重複していない日付を格納
    myKey = myDic.keys

    '日付のカウント結果を格納
    myItem = myDic.items

    'D列 E列へ出力
    For i = 0 To UBound(myKey)
        Cells(i + 2, 4).Value = myKey(i)
        Cells(i + 2, 5).Value = myItem(i)
    Next
    
    'データ並べ替え
    With ActiveSheet.Sort
        .SetRange Range(Cells(2, 4), Cells(UBound(myKey) + 2, 5))
        .Apply
    End With
    
    '開放
    Set myDic = Nothing

End Sub

 

マクロ実行後

A列から重複しない日付を取得して、D列へ転記します。

E列に日付のカウント結果を転記します。

最後にD列とE列を並び替えします。(D列の日付を昇順)


 
 
配列を日付昇順で出力する方法が難しそうだったため、

データ出力後に並び替えする方法でやってみました!

この記事がお役に立ちますと幸いです。
 

【エクセルマクロ】期限切れの日付をチェックする:コピペで使えるコード
...