Excelで文字色ごとにセルを数える方法(シートコピー対応)

Excel

Excelで会社カレンダーの出勤日と休日を文字色で管理し、それぞれのセルをカウントする方法について解説します。特にシートをコピーしても機能する方法を紹介します。

1. 標準関数では文字色をカウントできない

Excelの標準関数(COUNTIFなど)では文字色を直接判定できません。そのため、VBA(マクロ)を使って文字色を判定し、カウントする必要があります。

2. VBA関数を作成する

以下のユーザー定義関数をVBAで作成します。Alt+F11でVBAエディタを開き、挿入→標準モジュールで新規モジュールに貼り付けます。

Function CountFontColor(rng As Range, clr As Long) As Long    Dim c As Range    Dim cnt As Long    cnt = 0    For Each c In rng        If c.Font.Color = clr Then cnt = cnt + 1    Next c    CountFontColor = cntEnd Function

3. 関数の使い方

セル範囲の文字色をカウントするには、ワークシート上で次のように入力します。

=CountFontColor(A1:A31, RGB(0,0,0)) で黒文字をカウント

=CountFontColor(A1:A31, RGB(255,0,0)) で赤文字をカウント

RGB関数の値を変更すれば任意の色に対応可能です。

4. シートコピーでも機能する理由

VBA関数を使うことで、文字色を直接判定しているため、シートをコピーしても文字色が保持されていれば自動的にカウント可能です。関数内で範囲を指定するだけで、コピー先のシートでも同じように計算されます。

5. まとめ

Excelで文字色ごとのカウントは標準関数では対応できないため、VBAを活用するのが最適です。シートコピーにも対応可能なため、年度更新時のカレンダー作成にも便利です。

コメント

タイトルとURLをコピーしました