【エクセルマクロ】別シートの同じ日付に値を転記:動画あり

ExcelVBA_別シートの同じ日付に値転記-アイキャッチ ExcelVBA

エクセルマクロで、別シートの同じ日付に値を転記するVBAコードをご紹介します。

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

別シートの同じ日付に値を転記

以下のExcelVBAを実行すると、日にちが一致する行に値をコピーをします。


Sub 条件に合うデータを転記()

Dim Shukei As Worksheet
Dim Yotei As Worksheet
Dim MyList() As Variant
Dim LastRow As Long
Dim i As Long
Dim j As Long
Dim Cnt As Long

    Set Shukei = Sheets("集計")
    Set Yotei = Sheets("予定")
    
    Yotei.Select
    
    '予定シートの値を配列へ格納
    MyList = Yotei.Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 2))
    
    '集計シート 最終行
    LastRow = Shukei.Cells(Rows.Count, 1).End(xlUp).Row
    
    '集計シート 最終行までループ
    For i = 2 To LastRow
    
        Cnt = 0
    
        '配列ループ
        For j = 2 To UBound(MyList)
    
            '日づけが一致したら
            If Shukei.Cells(i, 1) = MyList(j, 1) Then
            
                '予定1つ目は集計シートB列へ転記
                If Cnt = 0 Then
                    Shukei.Cells(i, 2) = MyList(j, 2)
                    Cnt = Cnt + 1
                '予定2つ目は集計シートC列へ転記
                Else
                    Shukei.Cells(i, 3) = MyList(j, 2)
                    Cnt = 0
                    Exit For
                End If
                    
            End If
        Next j
    Next i

End Sub

マクロ実行前

「予定」シートは、日付が2つ重複しているものがあります。


 

マクロ実行後

「予定」シートをもとに、「集計」シートのB列とC列に値を転記します。

「予定」シートに同じ日付がある(重複がある)場合は、
「集計」シートのC列(予定2)へデータを転記します。


 

別シートの同じ日付に値を転記(応用)

以下のExcelVBAを実行すると、日にちが一致する行に値をコピーをします。


Sub 条件に合うデータを転記()

Dim Shukei As Worksheet
Dim Yotei As Worksheet
Dim MyList() As Variant
Dim LastRow As Long
Dim i As Long
Dim j As Long
Dim Cnt As Long

    Set Shukei = Sheets("集計")
    Set Yotei = Sheets("予定")

    Yotei.Select

    '予定シートの値を配列格納
    MyList = Yotei.Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 2))

    '集計シートの最終行取得
    LastRow = Shukei.Cells(Rows.Count, 1).End(xlUp).Row

    '集計シート 2~最終行までループ
    For i = 2 To LastRow

        '転記開始列(B列)
        Cnt = 2

        '配列ループ
        For j = 2 To UBound(MyList)

            '日付が一致したら
            If Shukei.Cells(i, 1) = MyList(j, 1) Then

                '予定シートの値を集計シートへ転記
                Shukei.Cells(i, Cnt) = MyList(j, 2)
                Cnt = Cnt + 1
            End If
        Next j
   Next i
   
End Sub

マクロ実行前

「予定」シートは、日付が重複しているものがあります。


 

マクロ実行後

「予定」シートをもとに、「集計」シートに値を転記します。


 
 
この記事がお役に立ちますと幸いです。
 
・【エクセルマクロ】日付処理を自動化する使用例まとめ
 

【エクセルマクロ】日付処理を自動化する:使用例17選
...

 

「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!