資料室 > 計算する > カウントする > 色の付いたセルをカウント > ユーザー定義関数を作成する【VBA】

ユーザー定義関数を作成する【VBA】

色の種類が4種類以上である場合には条件付書式の限界を超えるためこれを利用できない。VBAを利用してユーザー定義関数を作成、これを利用する方法が一つの方法として考えられる。

  1. 計算に使用するブックを開く。
  2. Altを押しながらF11キーでVBE(Visual Basic Editor)を起動
  3. [挿入(I)]>[標準モジュール(M)]で標準モジュールを作成
  4. 作成された標準モジュールをダブルクリック、コードウィンドウへ書きコードを貼り付け。
     
     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
     
  5. Altを押しながらQキーでVBE終了
  6. A1:A10で背景色赤(標準状態)をカウントする場合、セル背景色をカウントするセルへ次のように入力する
     =CCC(A1:A10,3)

上記の場合、二つ目の引数「3」が「背景色赤」を表すが、この色番号がわからない場合は調べる色に設定されているセルを直接指定する。
 =CCC(A1:A10,A1)

基本的に標準モジュールへ登録したブックでしか有効ではないので、複数のブックで有効とするにはアドイン登録するのが有効である。
なお、上記コードは試作サンプルであり、完全動作は保障しない。


前(条件付書式により色付けの自動化、カウント) 目次 次(集計する)


SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送