一回も披露したことのない豆知識

背景色のついたセルの合計数を「実員」という欄に出したいのですが、やり方が見つかりません。
色が1色なら1、3色なら3と自動的に反映させられる関数やマクロがありましたら教えてください( ´△`;)
この画像は、色に対してセルを結合してます。
それにより数値がカウントできない場合は結合解除します。
宜しくお願いしますm(__)m

「背景色のついたセルの合計数を出したいです」の質問画像

質問者からの補足コメント

  • お返事遅くなりすいません。

    画像を再度添付しました。
    バージョンは(おそらく)2010、違う行で同じ色が使われても【1】として扱い、白で着色したセルはありません。
    【23】の列に数値がでるようになると有り難いです。
    また、シート内に日にち毎(1日、2日、3日…)で枠を作っているので、全体的にマクロが反映するコードを提示していただけるとたすかります (m_ _)m

    「背景色のついたセルの合計数を出したいです」の補足画像1
      補足日時:2017/03/01 04:59
  • AI23となります。
    よろしくお願いします (m_ _)m

    No.3の回答に寄せられた補足コメントです。 補足日時:2017/03/01 14:00
  • 間違えました。
    AK23でした。。

      補足日時:2017/03/01 14:02
  • すごいです!
    できました!

    ただ、、すぃません…やってみて私の質問不足で以下の件を含めてコード対応できますでしょうか。

    ・F〜AJ(AK間違えてました)
    ・塗り潰しなし+黄色はカウントしない(黄色は実数ではなかった為)
    ・1〜31日あるので『23』以外にいかの行数も反映できると嬉しいです。
    23.50.77.104.131.158.185.212.239.266.293.320.347.374.401.428.455.482.509.536.563.590.617.644.671.698.725.752.779.806.833
    (27づつ増えてます)

    以上となります。
    よろしくお願い致します (m_ _)m

    No.4の回答に寄せられた補足コメントです。 補足日時:2017/03/03 14:54

A 回答 (5件)

とりあえずこんな感じで良いと思います。

ご確認下さい。
---------------------------------------------------------------------
Sub 背景色の合計数()
Dim 基 As Long
Dim 行 As Long
Dim 列 As Long
Dim 数 As Long
For 基 = 0 To 810 Step 27
For 列 = 4 To 36
数 = 0
For 行 = 基 + 3 To 基 + 22
With Cells(行, 列).Interior
If .ColorIndex <> xlNone Then
If .ColorIndex <> 6 Then
数 = 数 + 1
End If
End If
End With
Next
Cells(基 + 23, 列).Value = 数
If 数 = 0 Then Cells(基 + 23, 列).Value = ""
Next
Next
End Sub
---------------------------------------------------------------------
※ 環境によっては黄色の部分がはぶかれない可能性があります。黄色もカウントするようでしたら、マクロの記録でセルを黄色くした場合のコードを提示してください。
    • good
    • 1
この回答へのお礼

ありがとうございます!
本当に助かりました^ ^

お礼日時:2017/03/03 21:02

とりあえずこんな感じで良いと思います。

ご確認下さい。
---------------------------------------------------------------------
Sub 背景色の合計数()
Dim 行 As Long
Dim 列 As Long
Dim 数 As Long
For 列 = 4 To 37
数 = 0
For 行 = 3 To 22
If Cells(行, 列).Interior.ColorIndex <> xlNone Then 数 = 数 + 1
Next
Cells(23, 列).Value = 数
If 数 = 0 Then Cells(23, 列).Value = ""
Next
End Sub
---------------------------------------------------------------------
この回答への補足あり
    • good
    • 0

数値を代入する可能性のあるセルの初めは D23 だと思うのですが、最後はなんでしょうか?

この回答への補足あり
    • good
    • 0

マクロ(VBA)なら可能ですが、以下が判らないとコードの提示は無理かも知れません。


・シートのレイアウト(セルの行番号や列記号など)
・エクセルのバージョン
・違う行で同じ色が使われていても「1」として扱うのでしょうか?
・白で着色したセルは無いですよね(「色なし」と「白」は区別するか?)

注意事項
・セルへの着色に対してのイベントがないのでリアルタイムでのカウントはできません。マクロを手動で呼び出すか、保存時に更新や、次に開いた時に更新とかになります。
    • good
    • 0

セルの背景色を判断する関数はありません。



背景色を条件付き書式を使って設定するようにしているのであれば、その条件を使って計算をさせることは可能です。

背景色を手入力で設定している場合はマクロで処理する必要があります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!