【エクセルマクロ】色付きセルの値を削除(消去):活用術2選

VBA-色付きセルの値削除-アイキャッチ ExcelVBA

エクセルマクロで、色付きセルの値を削除(消去)するVBAコードをご紹介します。

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

色付きセルの値を削除

以下のExcelVBAを実行すると、指定色がついているセルの文字を一気に消します。


Sub 色つきセルの値クリア()

Dim UsedRow As Long
Dim UsedClm As Long
Dim i As Long
Dim j As Long

    '最終列、最終行を取得
    UsedRow = Cells(Rows.Count, 1).End(xlUp).Row
    UsedClm = Range("A1").End(xlToRight).Column
    
    Application.ScreenUpdating = False
    
    '1~最終列までループ
    For j = 1 To UsedClm
    
        '1~最終行までループ
        For i = 1 To UsedRow
            
            '黄色だったら値クリア
            If Cells(i, j).Interior.Color = 65535 Then
                Cells(i, j).ClearContents
            End If

        Next i
    Next j
    
    Application.ScreenUpdating = True
    
End Sub

 

マクロ実行後

指定色がついているセルの値を、まとめて削除します。

[Interior.Color = 65535] にて、黄色を指定しています。


 

色付きセルの値を削除(複数色)

以下のExcelVBAを実行すると、特定の色がついているセルの文字を一括消去します。


Sub 色つきセルの文字クリア()

Dim UsedRow As Long
Dim UsedClm As Long
Dim MyColor As Variant
Dim i As Long
Dim j As Long
Dim Q As Long

    '配列にカラーインデックスを設定
    MyColor = Array(65535, 5287936, 15773696)

    'データ入力エリアを取得
    UsedRow = Cells(Rows.Count, 1).End(xlUp).Row
    UsedClm = Range("A1").End(xlToRight).Column
    
    Application.ScreenUpdating = False
    
    For Q = 0 To UBound(MyColor)
    
        '1~最終列までループ
        For j = 1 To UsedClm
        
            '1~最終行までループ
            For i = 1 To UsedRow
                
                '該当色だったら文字消す
                If Cells(i, j).Interior.Color = MyColor(Q) Then
                    Cells(i, j).ClearContents
                End If
    
            Next i
        Next j
    Next Q
    
    Application.ScreenUpdating = True
    
End Sub

 

マクロ実行後

配列 [MyColor] で指定した色のセル値を、一気にクリアします。


 
 
この記事がお役に立てれば幸いです。
 

【エクセルマクロ】ワークシート処理を自動化する:超便利39選
...

 

「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載