[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ピンク色で塗りつぶしてあり、かつ空欄以外のセルの数を数えたい』(桜井)
作成しているのは、任意でセルの色分けをした表です。
「条件付書式」ではなくて、セルを選択し塗りつぶしています。
ピンク色がついているセルは空欄と会社名が入っているものがあります。
ピンク色で塗りつぶされていて、
会社名も入っているセルの個数を数える方法をご教示いただきたくお願いします。
ピンク色のセル色は、38ということは調べました。
ピンク色のセルの数を出すところまでは、
こちらで「UFClrCntcc」を使うということを調べてできました。
「UFClrCntcc」の関数のコードを載せてみられてはどうでしょう。
おそらく、 For Each 何とか1 In 範囲 何とか2 = 何とか1のセルの色 If 何とか2 = ピンク色 Then 数 = 数 + 1 End If Next
の様に成っていると思いますので 「数 = 数 + 1」の上にもう一つ If 何とか1.Value <> "" Then の様な条件を付ければ良い様に思います。
(HANA)
「UFClrCntcc」は「エクセルの学校」のダウンロードページにある以下のものではないかと。
http://www.excel.studio-kazu.jp/DL/#q10
(独覚)
はい。私もそう思いますが どうやらダウンロードして開かないと コードが分からない様なので。。。
載せていただければ、ダウンロード出来ない環境の方からの レスもつきやすいのではないかと思いました。
(HANA)
当方は日常的にあまりエクセルを使わないため、
コードの内容はほとんど理解することができません。
該当すると思われるものを↓に貼り付けます。
よろしくお願いします。
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
(桜井)
> sm = sm + 1 の上側に If ad.Value <> "" Then 下側に End If
を入れて、やってみるのはどうでしょう。
(HANA)
試してみたのですが、
「EndSubが必要です。」
というダイアログボックスが出てきます。
また、上記を追記した後、
どのような手順をふめばよいのか、
具体的に教えていただけますと幸いです。
ご面倒お掛けしてすみませんが、よろしくお願いします。
(桜井)
↓のコードに成りましたか? 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 If ad.Value <> "" Then sm = sm + 1 End If End If Next UFClrCntcc = sm End Function
このコードをコピーしてきた場所へ 上書き貼り付けして下さい。
何かメッセージがでる場合は 再度そのメッセージを教えて下さい。
>上記を追記した後、どのような手順をふめばよいのか、具体的に と言う事ですが、コード内に該当二行を追加して頂ければ 特に手順はないのですが・・・。
寧ろ、どの様な手順で追加したのか 教えて頂きたいです。
現在貼り付けてもらったコードが、VBEに有りますよね。 そのコードの「sm = sm + 1」の行の 上側と、下側に一行ずつ追加してもらうだけなのですが・・・。 どこか(End Function とか)消したりしてませんか?
(HANA)
ありがとうございます。
ご指示通りに上書きしました。
先ほども何も削除せず、
2行追記しただけだったのですが、
今回は何もメッセージは出ませんでした。
この後、ピンク色のセルで空欄以外のものは、
どうやって算出すれば良いのでしょうか。
教えてください。
(桜井)
ん?ピンク色のセルの数は出せたのですよね? 同じようにやってみて下さい。
>If ad.Value <> "" Then を追加したので、空欄以外の物がカウントされると思いますが。
=UFClrCntcc( セル範囲 , 38)
この関数(変更前の関数)を他の事にも使用するので有れば コードをコピーして、違う関数名で作成しておいた方が 良い様に思います。
例えば Public Function UFClrCntccIb(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 If ad.Value <> "" Then sm = sm + 1 End If End If Next UFClrCntccIb = sm End Function
とすれば、ワークシートには =UFClrCntccIb( 範囲 , 38) として下さい。
(HANA)
おかげさまで、無事に算出できました。
ありがとうございます。
次の機会にに利用できるよう、
データを残して分かりやすくしておこうと思います。
そしてもっと勉強します。
本当にありがとうございました。
(桜井)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.