[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『色付きセルかつ空白でないセルを数えたい』(HIR)
過去ログより下記マクロを発見しました。
Function FCC(adrs, clr) sm = 0 For Each ad In adrs fci = ad.Interior.ColorIndex cv = ad.Value If fci = clr Then sm = sm + 1 End If Next FCC = sm End Function
これだと色付きのセル数を全て数えますが、
色付きかつ空白でないセルの個数を数えたい場合は
どうしたらできますでしょうか?
ご教授よろしくお願い致します。
念のためお知らせしますが、 このVBAは指定された色のセルの数(kazu)を数えるコードです、 作者より。 (kazu)
kazuさんのVBAを少しいじりました。
Function FCC(adrs) Dim adval As String Dim sm As Integer, fci As Integer Dim ad sm = 0 For Each ad In adrs fci = ad.Interior.ColorIndex adval = ad.Value If fci > 0 And adval <> "" Then sm = sm + 1 End If Next FCC = sm End Function
こんな感じでしょうか?(ケン)
数独中級者さんこんばんは。 先手打つとは卑怯なり。 kazuさんの作曲やったらあんまり編曲したらアカンと思うて、書き直しました。
や〜めた! ここへコピペして見比べたら、イケメン ケンさんと全く同じやんか、は〜っ Applicati.Volatileだけワシの勝ち?(弥太郎)
弥太郎さん、こんばんはm(_ _)m 恐れ入ります。勝手に編曲して怒られるでしょうか?こわ〜いよ〜 (ケン) 何故か?Application.Volatileがなくても再計算してくれます。
[著作権の侵害じゃ]と怒ろうとおもっていたのですが、思わぬ発見で中和。
> 何故か?Application.Volatileがなくても再計算してくれます。
私もこのケンが気になったので、追試しました。
問題のポイントは引数の渡し方にあるようです。
変化しない clr があるとセルの色が変化しても、再計算しないようです。
Function FCC(adrs, clr)
Function FCC(adrs)
(kazu)
なるほど。分かったような?分からないような? 取りあえず、お許しが出たようなので、ほっと一安心。ホッ 有難うございます。勉強さしてもらいました。(ケン)
ケンさ〜ん、勘違いしたらいけまへん。 わたしゃApplication.Volatileの働きのことを言うとるんと違いまっせ。 あんさんのコードより一行多い事を自慢してまんねんで、えぇ。 ふん、どんなもんでぇ。-
>私もこのケンが気になったので、追試しました。 以前、再計算されない関数を作っておうじょうした事がありましたんで、それ以来 どの関数でもこれ放り込んでますワ。 カラーの個数を勘定する関数も作った覚えがありまんねんけどVolatileを使っても 再計算されなかったと思うんですが・・・??? (弥太郎)
「備えあれば、なんとやら」ですか。違う? そうですね。また一つ上がれました。 (ケン)今、弥太郎さんの右足膝位かなぁ〜
私の質問の仕方が悪かったので申し訳ないのですが、 実は「”指定された色”でかつ、空白でないセルの数を数えたい」 のです。 再度お教えいただきたくお願いします。 (HIR)
Functionプロシージャが良いのでしょうか? Subでも構わない? ちなみにセルを調べる範囲は、シート上の全範囲ですか? ループ処理しますので、範囲は出来る限り限定した方が処理は速くなりますが・・。
(INA)
見当違いなことを書いてしまったらすみません。 マクロ実行時に検索範囲(A1:A300等)と色番号を入力し検索したいと思っています。 関数名を"ABC"としたなら、”=ABC(A1:A300,15)”という感じです。 (HIR)
こんな感じでしょうか?
Function ColorCount(ByVal myRange As Range, ByVal myColor As Long) Dim c As Range Dim cnt As Long
For Each c In myRange If myColor = c.Interior.ColorIndex And _ c.Value <> "" Then '←空白以外のときの条件を追加 cnt = cnt + 1 End If Next
ColorCount = cnt End Function
ばっちりです!! 思っていた通りのことができます。 ありがとうございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.