エクセルマクロで、文字色が付いているセルをカウントする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:A8")
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
マクロ実行後
各文字色をカウントした結果を、メッセージボックスに表示しました。
この記事がお役に立ちますと幸いです。
【エクセルマクロ】色付きセルをカウント2選:動画あり
...
「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!
リンク