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を活用するのが最適です。シートコピーにも対応可能なため、年度更新時のカレンダー作成にも便利です。


コメント