[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『塗りつぶしなしのセルの数を数えたい』(壮年)
A5〜A35に1〜31の数字が1から順に入っています。 その中には色が付いているセルが幾つかありますが、 色なしのセルの個数を数えたいです。 但し、数える範囲はA5から始まりますがA1に入力した値と 同じ値が入っているセルまでです。数えた個数をA2に表示したいのです。 この学校で出ていたカラー関数とか他の回答例をくっ付けて やってみましたがどうしても出来ません。 私は、まだまだVBAの幼稚園児(赤ん坊かな)です。 私の作ったのを見て下さい、そしてどこが悪いのかどなたか教えて下さい。 Win2000 Excel2000です
Sub test()
Sheets("進捗").Activate
Range("A1").Select Dim d As Integer For d = Range("A65536").End(xlUp).Row To 1 Step -1 If Selection.Value = Range("A" & d).Value Then Range("A" & d).Select
A = ActiveCell.Row B = ActiveCell.Column
Range(Cells(5, B), Cells(A, B)).Select i = UFClrCntcc(Cells(5, B), Cells(A, B) - 4142) Cells(2, 1) = i Exit Sub End If Next d
End Sub
UFClrCntccへの引数の指定が間違っています。
指定色カウント = UFClrCntcc(セル範囲, 指定色)
ですが、
i = UFClrCntcc(Cells(5, B), Cells(A, B) - 4142) ↑ ↑ セル範囲 指定色
となってしまっています。 (現状 Cell(A, B) から 4142 を引いたものが指定色になっている)
せっかくその上の Range(Cells(5, B), Cells(A, B)).Select で セル範囲を選択しているのですから、
i = UFClrCntcc(Selection, -4142)
とすればよいと思います。 (ramrun)
Sub test() Dim d As Integer
Sheets("進捗").Activate Range("A1").Select
For d = Range("A65536").End(xlUp).Row To 1 Step -1 If Selection.Value = Range("A" & d).Value Then Range("A" & d).Select A = ActiveCell.Row B = ActiveCell.Column Range(Cells(5, B), Cells(A, B)).Select i = UFClrCntcc(Selection, -4142) Cells(2, 1) = i Exit Sub End If Next d End Sub
Public Function UFClrCntcc(adrs, clr) ' 特定のセル色の数 Dim sm As Variant, cv As Variant, fci As Integer, ad As Range sm = 0 For Each ad In adrs fci = ad.Interior.ColorIndex If fci = clr Then sm = sm + 1 End If Next UFClrCntcc = sm End Function
(ramrun)さん早速の回答有難うございます。 完璧です。出来ました。(ramrun)さんの書き込みは よく拝見しております、今後ともよろしくお願い致します。 (壮年)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.