【エクセルマクロ】セルの色を置換する:実用的な3つの方法

エクセルマクロ_セルの色を置換_アイキャッチ エクセルマクロで効率化する

エクセルマクロで、セルの背景色を置換するVBAコードをご紹介します。

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

セルの色を置換する(パターン1)

以下のマクロを実行すると、セルの背景色を置換します。

Sub セルの背景色を変更()
  
    Dim MyRange As Range
  
    '指定範囲
    For Each MyRange In Range("A2:F21")
    
        Select Case MyRange.Interior.Color
        
            'イエローだったらグリーンに色を変換
            Case 65535
                MyRange.Interior.Color = 5287936
                
            'オレンジだったらイエローに色を変換
            Case 49407
                 MyRange.Interior.Color = 65535
        
        End Select
  
    Next
  
End Sub

 

マクロ実行後

Select Case を使用して、セルの塗りつぶしの色を変更しました。

変更のバリエーションを増やしたい場合は、「Case ~ 」を追加してください。


 

セルの色を置換する(パターン2)

以下のマクロを実行すると、セルの背景色を置換します。

Sub セルの色を変換()

    '置換前の色(黄色)
    Application.FindFormat.Interior.Color = 65535
    
    '置換後の色(青色)
    Application.ReplaceFormat.Interior.Color = 15773696
    
    '置換実行
    Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
        xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True

End Sub

 

マクロ実行後

ReplaceFormat を使用して、セルの色を置き換えました。


 

セルの色を置換する(パターン3)

以下のマクロを実行すると、配列を使用してセルの背景色を置換します。

Sub セルの色を変更()

Dim BeforeColor() As Variant
Dim AfterColor() As Variant
Dim Q As Long
    
 '置換前の色を配列に入れる
 BeforeColor = Array(65535, 49407)
    
 '置換後の色を配列に入れる
 AfterColor = Array(5287936, 65535)
    
 '配列をループ
 For Q = 0 To UBound(BeforeColor)
    
   '置換前の色を設定
   Application.FindFormat.Interior.Color = Int(BeforeColor(Q))
        
   '置換後の色を設定
   Application.ReplaceFormat.Interior.Color = Int(AfterColor(Q))
        
   'セルの塗りつぶしの色を置換実行
   Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
       xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
        
 Next Q

End Sub

 

マクロ実行後

配列を使用して、置換前と置換後の色を指定しました。

複数のセルの色を一括置換することができます。


 

【エクセルマクロ】セルの塗りつぶしを解除する:コピペで使えるコード
...