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も見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
3分あったら何をしますか?
カップ麺にお湯を入れて、できるまでの3分間で皆さんは何をしていますか?
-
【お題】マッチョ習字
【大喜利】 「精神を鍛えるため」にと、ジムから書初めの宿題を出されたマッチョたちが半紙に書いてきたこと
-
自分の通っていた小学校のあるある
進学したり大人になってから、「あれって自分の小学校だけだったのかな」と思うことありますよね。 逆に「他の小学校ってそんなことするの!?」と思ったり。 そんな「自分の通っていた小学校」のあるあるを教えてください!
-
【選手権お題その2】この漫画の2コマ目を考えてください
サッカーのワンシーンを切り取った1コマ目。果たして2コマ目にはどんな展開になるのか教えてください。
-
エクセル 条件付き書式で色をつけたセルの個数を数えたいです。 ネットで調べてcountcolorAも
Excel(エクセル)
-
条件付き書式の色付きセルのカウント方法について
Excel(エクセル)
-
条件付き書式で色塗りしたセルをカウント マクロ
Excel(エクセル)
-
-
4
VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカウントできる、VB
Visual Basic(VBA)
-
5
EXCEL 条件書式で反応したものだけCOUNTしたい
Excel(エクセル)
-
6
条件付書式で色づけしたセルの数をカウントしたい
その他(Microsoft Office)
-
7
エクセルでオブジェクトを常に表記する
Excel(エクセル)
-
8
背景色の有無を判断をして別のセルに「1」と入力
Excel(エクセル)
-
9
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
10
【Excel】 色の一致するセル数をカウントしたい。
Excel(エクセル)
-
11
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
12
Excel 条件付きの書式 マクロ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
E列のセルに数値が入れば(空白...
-
エクセルの枠の中の文字が青文...
-
Excel にて条件付き書式の色に...
-
条件付書式で「=#N/A」に色を付...
-
条件付き書式で、結果が1行ずれる
-
【Excel】条件付き書式で 0では...
-
エクセルで特定の数字等を表示...
-
エクセルで1以上は全て1にするには
-
Excelについて あるセルに文字...
-
セル結合させてるときの 条件...
-
エクセル内で複数の文字(50個ぐ...
-
ピボットテーブルオプション「...
-
エクセルで数値の文字色が白か...
-
スプレッドシートのセルに連続...
-
Excelのテキストボックスでフォ...
-
EXCEL 2000 条件付き書式を切り...
-
エクセルで「前回より大きい数...
-
エクセル ドロップダウンリス...
-
【エクセル】シフトで○が6個以...
-
エクセルでシート参照する場合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件付書式で「=#N/A」に色を付...
-
E列のセルに数値が入れば(空白...
-
条件付き書式で、結果が1行ずれる
-
Excel にて条件付き書式の色に...
-
エクセルで特定の数字等を表示...
-
Excelの条件付き書式にて空白セ...
-
エクセルの枠の中の文字が青文...
-
エクセルで1以上は全て1にするには
-
【Excel】条件付き書式で 0では...
-
条件付き書式で太罫線を引く方法
-
エクセル:文字色を認識して○×...
-
一つ上のセルと同じセルに色を...
-
【エクセル】今日の日付に赤枠...
-
ピボットテーブルオプション「...
-
エクセル内で複数の文字(50個ぐ...
-
Excel 条件付書式 今日より3日...
-
セル結合させてるときの 条件...
-
【エクセル】シフトで○が6個以...
-
Excelについて あるセルに文字...
-
エクセル 条件付き書式で色をつ...
おすすめ情報