エクセルマクロで、セルの色の変更を他のシートに反映するVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
色の変更を他のシートに反映
以下のExcelVBAを実行すると、色の変更を他のシートに反映します。
Sub 色の変更を別シートに反映()
Dim Plan_Sheets As Worksheet
Dim Kanri_Sheets As Worksheet
Dim EndRow_Receiving As Long
Dim EndRow_Plan As Long
Dim i As Long
Dim Q As Long
Dim Get_CellColor() As Variant
Dim Get_CellValue() As Variant
Set Plan_Sheets = Sheets("予定")
Set Kanri_Sheets = Sheets("管理表")
'「管理表」シートのB列の最終行を取得
EndRow_Receiving = Kanri_Sheets.Cells(Rows.Count, 2).End(xlUp).Row
'配列の要素数を指定
ReDim Preserve Get_CellColor(EndRow_Receiving)
ReDim Preserve Get_CellValue(EndRow_Receiving)
'「管理表」シートのB列の全行のセルの色・値を取得
For i = 1 To EndRow_Receiving
With Kanri_Sheets
Get_CellColor(i) = .Cells(i, 2).Interior.Color
Get_CellValue(i) = .Cells(i, 2).Value
End With
Next i
'「予定」シートのC列を「色なし」に設定
Plan_Sheets.Columns("C").Interior.Pattern = xlNone
'「予定」シートの最終行を取得
EndRow_Plan = Plan_Sheets.Cells(Rows.Count, 1).End(xlUp).Row
'色の取得数分ループ
For i = 1 To UBound(Get_CellColor)
'「予定」シートの行ループ
For Q = 1 To EndRow_Plan
'C列を色付け
If Plan_Sheets.Cells(Q + 1, 3) = Get_CellValue(i) Then
Plan_Sheets.Cells(Q + 1, 3).Interior.Color = Get_CellColor(i)
End If
Next Q
Next i
Set Plan_Sheets = Nothing
Set Kanri_Sheets = Nothing
Erase Get_CellColor
Erase Get_CellValue
End Sub
マクロ実行後
「管理表」シートは、色の基準となるシートです。
「管理表」シートと同じ配色を、「予定」シートに反映しました。
(2つのシートの想定)
①データは縦に増減する。
②色分けは変動する。
※「予定」シートの色分けに「条件付き書式」を使用している場合は、
「条件付き書式」の色分けが優先されます。
色の基準となる「管理表」シートの配色を変更し、マクロを実行しました。
「予定」シートに色の変更が反映されました。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】色付けを自動化する使用例まとめ
【エクセルマクロ】色付け処理を自動化する:超便利32選
...
「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!
リンク