質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

解決済

Excelで条件付き書式の条件を満たしたセルをカウントしたい

skel
skel

総合スコア4

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

1回答

0リアクション

0クリップ

5034閲覧

投稿2022/02/20 06:59

編集2022/02/20 10:29

条件付き書式を利用したガントチャート生成エクセルを組んでおります。
タスク、開始日、締め切りを入力すると、カレンダーのセルに色がついてガントチャートになるというアイデアです。
このうち、タスクがいくつ平行しているかを数値化したく、下記画像の青枠のように、その日の列を参照し、色つきのセルの数をカウントする関数またはVBAを組みたいと思っております。
(下記の画像は単に手打ちで数字をいれているだけです)
イメージ説明

セルに手動で色をつけている場合は下記のようなVBAでセルの数をカウントできますが、これを条件付き書式で実現するにはどうすればよろしいでしょうか。
https://nako-itnote.com/excel-color-count/#STEP3

どうぞよろしくお願いいたします。

参考までに、条件付き書式自体は下記のようなマクロを使用しています。

VBA

Sub 条件付き書式のセット() Dim Con '条件付き書式を削除 Range("範囲_ガントチャート").FormatConditions.Delete '締め切り1 Set Con = Range("範囲_カレンダー").FormatConditions.Add(Type:=xlExpression, Formula1:="=AND($G4>=K$2,$G4<L$2)") '緑 Con.Interior.ColorIndex = 12 Con.StopIfTrue = False '作業期間 Set Con = Range("範囲_カレンダー").FormatConditions.Add(Type:=xlExpression, Formula1:="=AND(タスク_開始<=K$2,タスク_終了>=K$2)") '黄緑 Con.Interior.ColorIndex = 35 Con.StopIfTrue = False End Sub

回答1(ありがとうございます)をうけまして、下記のようか関数を定義してみましたが、
エラーが返ってきてしまいます。
条件付き書式が設定されており、かつ色がついているセルをカウントするという設定にしていますが、
If c.DisplayFormat.Interior.ColorIndex <> xlNone Then
の行がうまく効かないようです。何がいけないのでしょうか。。。

VBA

Function CountColorA(Rng As Range) As Long Dim c As Range Dim cnt As Long Application.Volatile Col_cnt = 0 For Each c In Rng If c.FormatConditions.Count > 0 Then If c.DisplayFormat.Interior.ColorIndex <> xlNone Then cnt = cnt + 1 End If End If Next c CountColorA = cnt End Function

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/02/20 07:03依頼された後にこの質問は修正されています

こちらの質問が他のユーザーから「過去の低評価」という指摘を受けました。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。