エクセルマクロで、別シートの同じ日付に値を転記する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自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!
リンク