大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAを使って、文字色を判定してカウントするには、「Font.Color」を使います。手順としてはセル全体をループして「Font.Color」で判定する、という感じです。文字色を判定してカウントする方法について、マスターしていきましょう。

はじめに

この記事では、文字色を判定してカウントする方法について、ご紹介します。

やり方としては、セル全体をループして、「Font.Color」を使って文字色を判定します。

文字色を判定してカウントする方法について、マスターしていきましょう。

では、文字色を判定してカウントする方法について、解説していきます。

この記事を読むメリット

  • 文字色を判定してカウントする方法をマスターできます。

目次から見たい項目へ移動すると便利ですよ。

目次

文字色を判定してカウントする

文字色を判定してカウントしてみます。

Font.Colorで文字色を判定する

文字色の判定は、「Font.Color」を使います。

文字色が「赤」かを判定して、カウントしてみます。

Sub TEST1()
  
  Dim A, Cn
  Cn = 0 '初期値
  
  '表をループ
  For Each A In Range("A1").CurrentRegion
    '文字色が赤の場合
    If A.Font.Color = vbRed Then
      Cn = Cn + 1 'カウントアップ
    End If
  Next
  
  Debug.Print "赤は、" & Cn & " 個です"
  
End Sub

文字色が「赤」であるセルをカウントします。

文字色が「赤」のセルをカウント

文字色が「赤」をカウントします

実行すると、「赤」をカウントできます。

「赤」をカウントできた

「赤」をカウントできました

結果は「赤は、5個です」となって、赤をカウントできました。

複数の文字色を判定してカウントする

次は、複数の文字色を判定してカウントしてみます。

赤と緑と青を判定してカウント

条件別に分岐して、「赤と緑と青」を判定してカウントします。

Sub TEST2()
  
  Dim A, Cn1, Cn2, Cn3
  Cn1 = 0 '赤の初期値
  Cn2 = 0 '緑の初期値
  Cn3 = 0 '青の初期値
  
  '表をループ
  For Each A In Range("A1").CurrentRegion
    '文字色が赤の場合
    If A.Font.Color = vbRed Then
      Cn1 = Cn1 + 1
    '文字色が緑の場合
    ElseIf A.Font.Color = vbGreen Then
      Cn2 = Cn2 + 1
    '文字色が青の場合
    ElseIf A.Font.Color = vbBlue Then
      Cn3 = Cn3 + 1
    End If
  Next
  
  Debug.Print "赤は、" & Cn1 & " 個です"
  Debug.Print "緑は、" & Cn2 & " 個です"
  Debug.Print "青は、" & Cn3 & " 個です"
  
End Sub

次のシートで、文字色が「赤、緑、青」のセルをカウントします。

文字色が「赤、緑、青」をカウント

文字色が「赤、緑、青」をカウントします

実行すると、文字色が「赤、緑、青」であるセルをカウントできます。

「赤、緑、青」をカウントできた

「赤、緑、青」をカウントできた

「赤、緑、青」をカウントできました。

文字色を特定してカウント

次は、文字色を特定してカウントしてみます。

文字色がわからない状態で、文字色を特定してカウントしたい、ということになります。

Dictionaryを使ってカウント

文字色を特定してカウントするには、「Dictionary」を使います。

Sub TEST3()
  
  Dim Dic
  '辞書を作成
  Set Dic = CreateObject("Scripting.Dictionary")
  
  Dim A
  For Each A In Range("A1").CurrentRegion
    '登録されていない場合は登録
    If Dic.exists(A.Font.Color) = False Then
      Dic.Add A.Font.Color, 1
    '登録されている場合はカウントアップ
    Else
      Dic(A.Font.Color) = Dic(A.Font.Color) + 1
    End If
  Next
  
  Dim B, C
  'キーを入力
  Range("C2").Resize(Dic.Count) = WorksheetFunction.Transpose(Dic.keys)
  'アイテムを入力
  Range("D2").Resize(Dic.Count) = WorksheetFunction.Transpose(Dic.Items)
  
  '文字色を変更
  For i = 2 To Cells(Rows.Count, "C").End(xlUp).Row
    Cells(i, "C").Font.Color = Cells(i, "C")
  Next
  
End Sub

次のシートで、文字色を特定してカウントします。

文字色を特定してカウントしたい

文字色を特定してカウントします

実行すると、文字色を特定してカウントできます。

文字色を特定してカウントできた

文字色を特定してカウントできました

文字色を特定してカウントできました。

おわりに

この記事では、文字色を判定してカウントする方法について、ご紹介しました。

やり方としては、セル全体をループして、「Font.Color」を使って文字色を判定します。

文字色を判定してカウントする方法について、マスターしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す