資料室 > 計算する > カウントする > 色の付いたセルをカウント > ユーザー定義関数を作成する【VBA】
ユーザー定義関数を作成する【VBA】
色の種類が4種類以上である場合には条件付書式の限界を超えるためこれを利用できない。VBAを利用してユーザー定義関数を作成、これを利用する方法が一つの方法として考えられる。
- 計算に使用するブックを開く。
- Altを押しながらF11キーでVBE(Visual Basic Editor)を起動
- [挿入(I)]>[標準モジュール(M)]で標準モジュールを作成
- 作成された標準モジュールをダブルクリック、コードウィンドウへ書きコードを貼り付け。
Function CCC(Target As Range, ColorNo As Variant) As Variant
Rem CellsColorCount
Rem 範囲内の指定色番号のセルをカウントする
Dim C As Range
Dim MyCount As Long
Application.Volatile
If TypeName(ColorNo) = "Range" Then
If ColorNo.Count > 1 Then
MsgBox "引数ColorNoに指定できるセルは一つです"
CCC = "引数ColorNoセル指定不正"
Exit Function
End If
ColorNo = ColorNo.Interior.ColorIndex
ElseIf Not IsNumeric(ColorNo) Then
CCC = "引数ColorNo不正"
Exit Function
End If
For Each C In Target
If C.Interior.ColorIndex = ColorNo Then MyCount = MyCount + 1
Next C
CCC = MyCount
End Function
- Altを押しながらQキーでVBE終了
- A1:A10で背景色赤(標準状態)をカウントする場合、セル背景色をカウントするセルへ次のように入力する
=CCC(A1:A10,3)
上記の場合、二つ目の引数「3」が「背景色赤」を表すが、この色番号がわからない場合は調べる色に設定されているセルを直接指定する。
=CCC(A1:A10,A1)
基本的に標準モジュールへ登録したブックでしか有効ではないので、複数のブックで有効とするにはアドイン登録するのが有効である。
なお、上記コードは試作サンプルであり、完全動作は保障しない。
前(条件付書式により色付けの自動化、カウント) 目次 次(集計する)