【エクセルマクロ】文字色が付いているセルをカウント:コピペで使えるコード

エクセルマクロ:文字色がついているセルをカウント アイキャッチ エクセルマクロで効率化する

エクセルマクロで、文字色が付いているセルをカウントするVBAコードをご紹介します。

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

文字色が付いているセルをカウント

以下のマクロを実行すると、文字に色がついているセル数をカウントします。

Sub 文字色を数える()

    Dim Rng As Range
    Dim Red_cnt As Long
    Dim Orange_cnt As Long
    Dim Green_cnt As Long

    For Each Rng In Range("A2:A11")
        Select Case Rng.Font.Color
        
            '赤色
            Case 255
                Red_cnt = Red_cnt + 1
                
            'オレンジ色
            Case 49407
                Orange_cnt = Orange_cnt + 1
        
            '緑色
            Case 5287936
                Green_cnt = Green_cnt + 1
        
        End Select
    Next Rng
    
    Range("D2") = Red_cnt
    Range("D3") = Orange_cnt
    Range("D4") = Green_cnt
 
End Sub

 

マクロ実行後

各文字色をカウントした結果を、D列に表示しました。


 

VBAコードの解説

・[For Each Rng In Range(“A2:A11”)] は、文字色を判定する範囲を設定します。

・[Select Case Rng.Font.Color] は、1つ1つのセルの文字色を判定し、色ごとにセル数をカウントします。

 

文字色が付いているセルをカウント(配列使用)

以下のマクロを実行すると、文字色がついているセル数をカウントします。

Sub 配列を使用して文字色を数える()
 
Dim MyList As Variant
Dim GetColor() As Variant
Dim i As Long
Dim Cnt As Long
Dim Red_cnt As Long
Dim Orange_cnt As Long
Dim Green_cnt As Long

   Cnt = 1
     
   'A列を配列へ格納
   MyList = Range("A1", Range("A" & Rows.Count).End(xlUp)).Resize(, 1).Value
     
   '配列をループ
   For i = 2 To UBound(MyList)
   
        '各セルの文字色を取得して配列へ格納
        ReDim Preserve GetColor(Cnt)
        GetColor(Cnt) = Cells(i, 1).Font.Color
        Cnt = Cnt + 1
        
   Next i
   
   '各文字色を何個使用しているかカウント
   For i = 0 To UBound(GetColor)
   
        '赤色
        If GetColor(i) = 255 Then
            Red_cnt = Red_cnt + 1
            
        'オレンジ色
        ElseIf GetColor(i) = 49407 Then
            Orange_cnt = Orange_cnt + 1
            
        '緑色
        ElseIf GetColor(i) = 5287936 Then
            Green_cnt = Green_cnt + 1
            
        End If
    
    Next i
     
    'メッセージボックスでカウント結果を表示
    MsgBox "赤:" & Red_cnt & vbCrLf & "オレンジ:" & _
        Orange_cnt & vbCrLf & "緑:" & Green_cnt
 
End Sub

 

マクロ実行後

各文字色をカウントした結果を、メッセージボックスに表示しました。


 

【エクセルマクロ】色付きセルをカウント:作業効率アップの方法
...