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も見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
エクセル 条件付き書式で色をつけたセルの個数を数えたいです。 ネットで調べてcountcolorAも
Excel(エクセル)
-
条件付き書式の色付きセルのカウント方法について
Excel(エクセル)
-
VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカウントできる、VB
Visual Basic(VBA)
-
-
4
EXCEL 条件書式で反応したものだけCOUNTしたい
Excel(エクセル)
-
5
条件付書式で色づけしたセルの数をカウントしたい
その他(Microsoft Office)
-
6
条件付き書式で色塗りしたセルをカウント マクロ
Excel(エクセル)
-
7
背景色の有無を判断をして別のセルに「1」と入力
Excel(エクセル)
-
8
【Excel】 色の一致するセル数をカウントしたい。
Excel(エクセル)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
excelのCOUNTIF関数で、『範囲=色のついたセル』に設定したいです。
Excel(エクセル)
-
11
エクセルでオブジェクトを常に表記する
Excel(エクセル)
-
12
Excel VBA で色付きのセルの値を取得する
Excel(エクセル)
-
13
Excel 条件付きの書式 マクロ
Excel(エクセル)
-
14
マクロで最終行を取得してコピーしたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
E列のセルに数値が入れば(空白...
-
条件付書式で「=#N/A」に色を付...
-
Excel にて条件付き書式の色に...
-
Excelの条件付き書式にて空白セ...
-
条件付き書式で、結果が1行ずれる
-
エクセルで特定の数字等を表示...
-
エクセルの枠の中の文字が青文...
-
エクセルで1以上は全て1にするには
-
【Excel】条件付き書式で 0では...
-
エクセル:文字色を認識して○×...
-
条件付き書式で太罫線を引く方法
-
エクセル 条件付き書式で色をつ...
-
【エクセル】今日の日付に赤枠...
-
Excelのテキストボックスでフォ...
-
エクセルで文字訂正の横線だけ...
-
エクセル内で複数の文字(50個ぐ...
-
Excelについて あるセルに文字...
-
Excel数値のピリオドのつけかた
-
エクセルで日付を入力したらカ...
-
一つ上のセルと同じセルに色を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件付書式で「=#N/A」に色を付...
-
E列のセルに数値が入れば(空白...
-
Excel にて条件付き書式の色に...
-
条件付き書式で、結果が1行ずれる
-
エクセルの枠の中の文字が青文...
-
エクセルで特定の数字等を表示...
-
Excelの条件付き書式にて空白セ...
-
エクセルで1以上は全て1にするには
-
セル結合させてるときの 条件...
-
条件付き書式で太罫線を引く方法
-
ピボットテーブルオプション「...
-
エクセル 条件付き書式で色をつ...
-
【エクセル】シフトで○が6個以...
-
【Excel】条件付き書式で 0では...
-
エクセル:文字色を認識して○×...
-
エクセル内で複数の文字(50個ぐ...
-
Excelについて あるセルに文字...
-
エクセルでシート参照する場合...
-
エクエルで隣のセルの文字が赤...
-
一つ上のセルと同じセルに色を...
おすすめ情報