PGメモ

非エンジニアの記録

excelのスケジュールを作る上で色付きのカラムを数えるのが便利すぎる


上記のようにexcelでスケジュールを作る時があると思いますが。
工数が変わる度に何人日か書き直す。なんて時があるはず。
そんな時はマクロで関数を作ると「色付きのカラム数をカウント」できるのです。

参考:
How to count and sum cells based on background color in Excel?

Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean)
  Dim rCell As Range
  Dim lCol As Long
  Dim vResult
  lCol = rColor.Interior.ColorIndex
  If SUM = True Then
    For Each rCell In rRange
      If rCell.Interior.ColorIndex = lCol Then
        vResult = WorksheetFunction.SUM(rCell, vResult)
      End If
    Next rCell
  Else
    For Each rCell In rRange
      If rCell.Interior.ColorIndex = lCol Then
        vResult = 1 + vResult
      End If
    Next rCell
  End If
  ColorFunction = vResult
End Function

あとは

 =colorfunction(カウントしたい色があるカラム,カウント範囲,FALSEでカウントTRUEでSUM)

これで色付きカラムの増減を自動でカウントしてくれます。
便利。