

VBA初心者です。
VBAで行単位で条件付き書式の色をカウントしたいです。
大量のデータがあるExcelで多数の条件付き書式で色を塗りつぶしています。
またもともと行単位で条件付き書式とは別に色分けしている部分もあります。
その中で条件付き書式で色塗りされたセルだけを行単位で数をカウントするマクロを作りたいのですが、どうも上手くできません。以下が今作ってるマクロです。どなたかわかる方はいますでしょうか?
よろしくお願いします。
Dim taishoRow As Range
Dim Rng As Range
Dim cnt As Long
On Error Resume Next
Set taishoRow = Application.InputBox("対象行を選択","行取得",,Type:=8)
For Each Rng In taishoRow
If Rng.FormatConditions.Count <> 0 Then
If Rng.DisplayFormat.Interior.ColorIndex <> xLNone Then
cnt = cnt + 1
End If
End If
Next Rng
MsgBox cnt
End sub
No.1ベストアンサー
- 回答日時:
こんにちは
少し問題要素は残りますが、条件を充たした時に ユーザーがあらかじめ設定しているセル色と同じにしない・・と言う事が前提であれば
条件部分を
If Rng.FormatConditions.Count <> 0 Then
If Rng.DisplayFormat.Interior.ColorIndex <> xlNone _
And Rng.DisplayFormat.Interior.ColorIndex <> Rng.Interior.ColorIndex Then
cnt = cnt + 1
End If
End If
のように 加えると 条件を充たしていないがあらかじめ設定されているセル色を除外できると思います。
ありがとうございます。
やってみたらそれらしい結果がでました。
ただあらかじめ設定しているセル色と同じにしないというのが引っかかります。
条件付き書式で色は同じでも書式を変えてるのもあるので。。。
No.3
- 回答日時:
>条件付き書式の色をカウントしたいです。
>条件付き書式で色は同じでも書式を変えてるのもあるので。。。
これ、矛盾していませんか?
条件付き書式を充たしているセルを数えたいと言う事?
だとすると、かなり難しい(面倒)・・
プロパティに条件のTrue/Flaseを返すのが無かったと記憶しているので
設定されているすべての条件を調べて、かつ条件が充たされているか否かを調べる必要がありそうですね・・・
同じセルに複数の条件設定が出来るのと書式設定も多岐にわたる事を考えると申し訳ないのですが萎えます。
どこかに条件付き書式のファンクション、メソッド無いかな・・?
コメントありがとうございます。
自分自身もかなり難しいと思って質問しました。
ただ今回は色で判断するだけでも良いと思うので、前にご回答いただいたコメントでなんとかなりそうです。
ご丁寧にありがとうございます。
No.2
- 回答日時:
こんにちは
>どうも上手くできません。
どこが、意図と異なるのでしょうか?
よくわからないのですが、文書等では「行単位で条件付き書式の色をカウント」と書いてありますが、実際に行っているのは入力セル範囲のセルのチェックです。
入力者が行を選択すれば、当然行が対象となりますが、セルを選択することも可能なので、その際にどう対処するのでしょうか?
入力されたセルのみをチェック対象とするのなら、ご提示のままで問題ないと思います。
ただし、入力者が行全体を選択した場合、不要な非使用のセルのチェックまで行ってしまいますので、
Intersect(ActiveSheet.UsedRange, taishoRow)
とすることで、不要部分を省くことが可能と思います。
1セル(またはいくつかのセル)が入力されても、その行全体を対象とするのなら、範囲を
Intersect(ActiveSheet.UsedRange, taishoRow.EntireRow)
に広げる必要があるのかも知れません。
カウントの処理として、「条件付き書式が設定されているセル」をカウントなさりたいのではなく、「条件付き書式で色を変えて表示されているセル」をカウントしたいのではないかと推測しますが・・
もしそうであるなら、
>If Rng.DisplayFormat.Interior.ColorIndex <> xLNone Then
では、「無色ではないセル」の数をカウントしていることになります。
比較するのは、「実際の表示色」と「セルに設定されている色」で、これが異なれば条件付き書式により色が変わっているものと判断するということではないのでしょうか?
その場合であれば・・
If Rng.DisplayFormat.Interior.Color <> Rng.Interior.Color Then
ではないのかと。
ColorIndexはエクセルのカラーテーブルのindexになります。
自由な色設定も考慮しておくのなら、Color(=RGBカラー)で比較する方が宜しそうに思います。
>>どうも上手くできません。
>どこが、意図と異なるのでしょうか?
行単位で処理をすると条件付き書式で変わった色だけではなく色付きのセルを全て返してきてました。
おっしゃる通りの
If Rng.DisplayFormat.Interior.Color <> Rng.Interior.Color Then
を前の回答者の方に教えていただき解決しそうです。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) エクセルで書式設定とフィルタの組み合わせでうまく行かないのですが 4 2022/10/07 10:02
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル 条件付き書式で色をつけたセルの個数を数えたいです。 ネットで調べてcountcolorAも
Excel(エクセル)
-
条件付き書式の色付きセルのカウント方法について
Excel(エクセル)
-
VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカウントできる、VB
Visual Basic(VBA)
-
-
4
条件付き書式で色塗りしたセルをカウント マクロ
Excel(エクセル)
-
5
EXCEL 条件書式で反応したものだけCOUNTしたい
Excel(エクセル)
-
6
条件付書式で色づけしたセルの数をカウントしたい
その他(Microsoft Office)
-
7
excelのデータで色つき行の抽出方について教えてください
Excel(エクセル)
-
8
EXCELでセルの値が変化したときだけにマクロ実行
Excel(エクセル)
-
9
【Excel】 セルの色での判断はできますか?
Excel(エクセル)
-
10
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
Excel 条件付きの書式 マクロ
Excel(エクセル)
-
13
エクセルで空白セルを含む列の最終行の値を取得する式を教えてください
Excel(エクセル)
-
14
昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
E列のセルに数値が入れば(空白...
-
条件付書式で「=#N/A」に色を付...
-
エクセルの枠の中の文字が青文...
-
エクセルで特定の数字等を表示...
-
条件付き書式で、結果が1行ずれる
-
Excel にて条件付き書式の色に...
-
【Excel】条件付き書式で 0では...
-
Excelの条件付き書式にて空白セ...
-
エクセルで1以上は全て1にするには
-
エクセル内で複数の文字(50個ぐ...
-
【エクセル】シフトで○が6個以...
-
同列に重複した数字があり、そ...
-
セル結合させてるときの 条件...
-
一つ上のセルと同じセルに色を...
-
セルの値が空白じゃないなら色...
-
条件付き書式で太罫線を引く方法
-
【Excel】 #N/Aの場合の「条件...
-
ピボットテーブルオプション「...
-
エクエルで隣のセルの文字が赤...
-
エクセルの条件付き書式で*を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
E列のセルに数値が入れば(空白...
-
条件付き書式で、結果が1行ずれる
-
エクセルで特定の数字等を表示...
-
条件付書式で「=#N/A」に色を付...
-
Excel にて条件付き書式の色に...
-
エクセルの枠の中の文字が青文...
-
【Excel】条件付き書式で 0では...
-
Excel 複数のセルが一致すると...
-
Excelの条件付き書式にて空白セ...
-
エクセルで1以上は全て1にするには
-
セル結合させてるときの 条件...
-
条件付き書式で太罫線を引く方法
-
エクセルでシート参照する場合...
-
エクエルで隣のセルの文字が赤...
-
ピボットテーブルオプション「...
-
エクセル内で複数の文字(50個ぐ...
-
【エクセル】シフトで○が6個以...
-
Excel 条件付書式 今日より3日...
-
【エクセル】今日の日付に赤枠...
-
エクセルで日付を入力したらカ...
おすすめ情報