Excelでは、データの視認性を向上させるためにフォントの色を変更することがあります。例えば、赤色の文字をエラー、青色の文字を承認済みとする場合などです。
しかし、Excelの標準関数(COUNTIFやSUMIFなど)では、フォントの色を条件にカウントすることはできません。
本記事では、「フィルター機能を使う方法(VBAなし)」と「VBAを活用したカスタム関数(UDF)」 を使って、色付き文字をカウントする方法について解説します。
目次
Excelの標準関数で色付き文字をカウントできる?
✅ 結論: COUNTIF関数やSUMIF関数では、フォントの色を条件にカウントすることはできません。
これらの関数はセル内の「数値や文字列」を条件にカウントするため、フォントの色を判定することはできません。
では、どうする?
➡ 以下の2つの方法で対応可能です。
✅ 色付き文字のカウント方法
- フィルター機能を使って色付き文字をカウントする(VBAなし)
- VBAを使って色付き文字をカウントするカスタム関数(UDF)
フィルター機能を使って色付き文字をカウントする(VBAなし)
VBAを使わずに色付き文字をカウントしたい場合、フィルター機能を活用するのが最も簡単です。
✅ 手順
- データ範囲を選択(例:
A1:A100
) - 「データ」タブ →「フィルター」
- フィルターのドロップダウンをクリック
- 「フィルターの色」オプションを探す
- 特定のフォント色を選択
- Excelの左下に表示される「件数」を確認
✅ 結果:
フィルターで表示されたセルの数が色付き文字のカウント数になります。
📌 【メリット】
- VBA不要
- 簡単に実行可能
📌【 デメリット】
- 手動操作が必要
- データ変更時に再適用が必要
VBAを使って色付き文字をカウントする関数を作成する
Excelの標準関数では色を判定できないため、VBAを使って「特定のフォント色のセルをカウントする関数」を作成します。
✅ 色付き文字をカウントするVBA関数
Function CountFontColorCells(rng As Range, colorCell As Range) As Integer
Dim cell As Range
Dim count As Integer
count = 0
' 範囲内のセルをループ
For Each cell In rng
If cell.Font.Color = colorCell.Font.Color Then
count = count + 1
End If
Next cell
CountFontColorCells = count
End Function
✅ VBAの設定と実行方法
- VBAエディタを開く
Alt + F11
を押して VBAエディタ を開く
- 「挿入」→「モジュール」を選択
- 上記のVBAコードを貼り付け
- Excelに戻る
- 以下の数式を入力
A2:A10
→ 色付き文字のカウントを求める範囲C1
→ カウントしたいフォント色が設定されたセル
- Enterキーを押すと結果が表示される
✅ 結果:
C1セルと同じフォント色のセルの数がカウントされます。
条件付き書式のフォント色をカウントする方法(COUNTIF関数)
条件付き書式でフォントの色を変更している場合、VBAの Font.Color
ではカウントできません。
この場合は、COUNTIF関数を使うことでカウントが可能 です。
✅ COUNTIF関数を使用する方法
- セルに条件を入力する
- 例:
"エラー"
,"警告"
,"承認済み"
などの値
- 例:
- COUNTIF関数を使用
- 結果を確認
"エラー"
に設定されたセルの数がカウントされる
✅ 結果:
条件付き書式でフォントの色を変更している場合は、COUNTIF関数が有効です。
色付き文字のカウントに関する注意点
✅ 条件付き書式でフォントの色が変更された場合、VBAではカウントできない
- VBAの
Font.Color
は手動で設定したフォントの色しか取得できません。 - 条件付き書式の色をカウントする場合はCOUNTIF関数を使うのが最適 です。
✅ VBA関数は自動更新されない
- セルの色を変更した場合、手動で再計算(F9キーを押す)する必要がある。
✅ フィルターの色でカウントする方法もある
- フィルター機能を活用すれば、VBAを使わずに色付き文字をカウントできる。
色付き文字のカウント方法の比較
方法 | メリット | デメリット |
---|---|---|
フィルター機能を使う(VBAなし) | 簡単に実行できる | 手動操作が必要 |
VBAのカスタム関数(UDF) | 自動で色別にカウント可能 | VBAの知識が必要 |
条件付き書式 + COUNTIF関数 | 標準関数だけで対応可能 | セルの色ではなく文字列をカウントする |
まとめ
Excelで 色付き文字をカウントする方法 は、3つの方法 があります。
📌 おすすめの使い分け
✔ VBAを使いたくない → フィルター機能を使う
✔ 条件付き書式でフォントの色を変えている → COUNTIF関数を使う
✔ 色別に自動でセルをカウントしたい → VBAのカスタム関数を使う
実際の活用例
方法 | 使いどころ |
---|---|
フィルター機能 | 手軽に色付き文字をカウントしたい場合 |
VBAのカスタム関数 | 色別に自動でカウントしたい場合 |
COUNTIF関数 | 条件付き書式の色をカウントしたい場合 |