色のついた文字の記載があるセルをカウントしたく
色々調べました。結局VBAで設定する方法にしたのですが
設定しテストをするとどうしてもカウント数が合いません。
全くの初心者の為何が間違っているのか全く分かりません。
どなたか教えて下さい。
VBAも全く知らない者でしたので
調べて以下のものをそのまま貼り付けました。
Function CCount(Rng As Range, idx)
Dim R As Range
Dim Cnt As Long
Application.Volatile
For Each R In Rng
If R.Font.ColorIndex = idx Then Cnt = Cnt + 1
Next R
CCount = Cnt
End Function
Function GetIndx(Rng As Range)
If Rng.Count > 1 Then
GetIndx = vbNullString
Exit Function
End If
GetIndx = Rng.Font.ColorIndex
End Function
何が間違っているのでしょうか?
No.5ベストアンサー
- 回答日時:
説明不足だったので補足を…
条件付書式で設定された文字色はVBAでは取得できないようです。
やるとしたら、設定された条件を取得して、どの条件が成立しているかを確認して成立した時用の書式情報から文字色を取得する事になります。
しかし、条件付書式もセルの値・数式と対象が異なると判定も面倒になりますのでお勧めしません。
次の2つの方法で、別々にカウントし、合算してはいかがでしょう。
通常の文字色「赤」については、提示されたマクロで数をカウント。
条件付書式で設定された文字色「赤」については、別なセルに同じ条件をセル式として入れ、そのセル式が成立した数をカウント。
例:A1セルの条件付き書式の条件が「セルの値が」「次の値以上」「500」
だとしたら無関係なセルに =(A1>=500)*1 と入れると条件が成立した時に1になりますので、これらを合計します。
なんて表現していいのか分からないくらい感動しました。
カウントできました。
とりあえずそこまでややこしい事をしなければならないくらい
必要な条件付書式であるのかもみなししたいと思いますが
一旦上記の方法でカウントします。
本当にありがとうございます。
こういう事ってできると本当に感動しますし、うれしい気持ちになります。より深く理解できるように地道に勉強していこうと思いました。
本当にありがとうございました。
No.4
- 回答日時:
文字色「赤」を条件付書式で設定しているのですね……。
VBA中で使用している .Font.ColorIndex は、条件付書式で設定した文字色ではなく、セルに普通に割り付けられた文字色を指して居ます。
これは条件付書式で文字色が変わっても変わりません。
したがって、どの条件が成立しているのかを確認して、その条件の時の文字色を取得する事になります。しかし、ちょっと調べた範囲では、どの条件が成立しているのかを表すプロパティは無いようです。
VBAでやるのであれば、条件全てについて成立しているか否かを確認して、その時の文字色を取得する事になり、面倒です。
可能なら、文字色以外でカウントする方法を検討されてはいかがですか。
>文字色「赤」を条件付書式で設定しているのですね……。
そうです・・・
>VBA中で使用している .Font.ColorIndex は、条件付書式で設定した文字色ではなく、セルに普通に割り付けられた文字色を指して居ます。
これは条件付書式で文字色が変わっても変わりません。
そうだったのですね・・・
文章の意味を理解するのに時間が掛かりました。
文字色以外でカウントする方法も考えたのですが・・・
No.3
- 回答日時:
> この質問で申し訳ないんですが実際赤文字になったものだけをカウントする事は出来ないのでしょうか?
文字色=赤 かつ、値が空白以外 と言う条件で良いと思います。
マクロのIF文の中を書き換えて見てください。
If R.Font.ColorIndex = idx Then Cnt = Cnt + 1
↓
If (R.Font.ColorIndex = idx) * (R.Value <> "") Then Cnt = Cnt + 1
No.2
- 回答日時:
> =CCount(C1:D10,3)
> と入力しています。
>
> それでもセル数が合いません。何か理由は考えられますでしょうか?
想像ですが、文字が入って居ないセルに文字色が赤に設定されているセルがある……なんて事はありませんか?CCountは、赤い文字をカウントしている訳ではなく、文字色が赤に設定されているセルをカウントしています。
外している場合、どのように異なるのか具体例を挙げてください。
>想像ですが、文字が入って居ないセルに文字色が赤に設定されているセルがある……なんて事はありませんか?CCountは、赤い文字をカウントしている訳ではなく、文字色が赤に設定されているセルをカウントしています。
まさしくそれでした・・・。
条件付書式で入力があれば赤文字に設定している箇所が有ります。
このVBAでは文字色が赤に設定されているセルをカウントしていたのですね・・・・
この質問で申し訳ないんですが実際赤文字になったものだけをカウントする事は出来ないのでしょうか?
No.1
- 回答日時:
マクロの内容も使用方法も判らず、ただ貼り付けたけど動かない……と、言うことでしょうか。
そうでないのでしたら、もう少し状況等の情報が欲しい所です。挙げられている2つの関数は、それぞれ次のような処理をします。
CCount()第一引数で指定したセル範囲中に、第2引数で指定した文字色のセルが幾つあるかカウントして返す。
GetIndx()引数で指定した1セルの文字色情報を返す。
恐らく、ユーザ関数として使用したいのだと推測しました。
次の様に使う物だと思われます。
例:セルA1の文字色と同じ文字色のセルがセル範囲C1:D10の中に幾つあるかカウント。空いているセルに↓の式を入れる。
=CCount(C1:D10,GetIndx(A1))
この回答への補足
早速ありがとうございます。本当に助かります。
なんとなくの解釈が少しずつ明確になってきました。
2つ目の関数は私には必要が無いので削除しました。
【理由は赤色の文字だけ・・と決まっています】
数式は上記に書いていただいているとうり
=CCount(C1:D10,3)
と入力しています。
それでもセル数が合いません。何か理由は考えられますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件付書式で「=#N/A」に色を付...
-
E列のセルに数値が入れば(空白...
-
エクセルの枠の中の文字が青文...
-
Excel にて条件付き書式の色に...
-
Excelの条件付き書式にて空白セ...
-
条件付き書式で、結果が1行ずれる
-
エクセルで特定の数字等を表示...
-
条件付き書式で太罫線を引く方法
-
エクセルで1以上は全て1にするには
-
セル結合させてるときの 条件...
-
ピボットテーブルオプション「...
-
エクセル 条件付き書式で色をつ...
-
【Excel】条件付き書式で 0では...
-
エクセルで一定期間が経過した...
-
一つ上のセルと同じセルに色を...
-
VBA初心者です。 VBAで行単位で...
-
エクセルで文字訂正の横線だけ...
-
セルの値が空白じゃないなら色...
-
Excelで赤字の行だけ上に...
-
【Excel】 #N/Aの場合の「条件...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
E列のセルに数値が入れば(空白...
-
Excel にて条件付き書式の色に...
-
条件付き書式で、結果が1行ずれる
-
条件付書式で「=#N/A」に色を付...
-
互換性チェック
-
エクセルの枠の中の文字が青文...
-
エクセルで特定の数字等を表示...
-
Excelの条件付き書式にて空白セ...
-
エクセルで1以上は全て1にするには
-
ピボットテーブルオプション「...
-
条件付き書式で太罫線を引く方法
-
セル結合させてるときの 条件...
-
エクセル 条件付き書式で色をつ...
-
Excelについて あるセルに文字...
-
エクセル内で複数の文字(50個ぐ...
-
エクエルで隣のセルの文字が赤...
-
エクセルで文字訂正の横線だけ...
-
【エクセル】シフトで○が6個以...
-
エクセル:文字色を認識して○×...
-
セルの値が空白じゃないなら色...
おすすめ情報