エクセルで指定範囲内の網掛けされたセルの数をカウントしたいのですが、どうすればいいのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>条件付き書式で設定された網掛けを認識させることは出来ないんでしょうか?



私にも分からなかったので、アチコチの掲示板で聞いてみました。
その結果ですが、条件付き書式の網掛けを直接判定する方式は分かりませんでした。条件を文字列で取得して、判定するしかないようです。
設定されている条件はどのようなものか(セル範囲か数式か)、また条件は幾つ設定されているのか、それによって対応は全部違います。全部の条件を列挙すると長くなりますので、条件は1つだけで、条件は数式である場合について書きます。

For Each var In Range("A1:B4")
 var.Activate
 If Evaluate(var.FormatConditions(1).Formula1) Then i = i + 1
Next var

セル範囲は"A1:B4"、i にカウントされます。
条件がセル範囲である場合等は、また書き込みします。
    • good
    • 0
この回答へのお礼

ありがとうございます。
いろいろと調べていただいたようで、申し訳ありませんm(__)m
なぜこうなるのか分かりませんが、思い通り上手くいきました。
なぜこうなるのか今から、勉強します。
本当にありがとうございました。

お礼日時:2001/09/15 16:34

例えば"A1:B4"の範囲ならば下記でいけると思います。


iにセル数がカウントされます。

Dim var As Variant, i As Integer

For Each var In Range("A1:B4") 'Selection
If var.Interior.ColorIndex > xlColorIndexNone Then i = i + 1
Next var

この回答への補足

ありがとうございます。
確かに、普通に網掛けされたセルなら出来たのですが、条件付き書式によって網掛けされたセルだったのでInterior.ColorIndex で認識できないようでiが0で返ってきます。
条件付き書式で設定された網掛けを認識させることは出来ないんでしょうか?

補足日時:2001/09/10 17:31
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルのマクロで範囲指定をセルに番号を入れて、範囲指定したセルの字の

エクセルのマクロで範囲指定をセルに番号を入れて、範囲指定したセルの字の色を白にして消したいのですが、番号を入れるマクロがわかりません。マクロに記録でA2からB12までのセル内の字の色を白

にする方法は

Sub 字を消す()
'
' 字を消す Macro
'

'
Range("A2:B11").Select
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
End SubでできるのですがD3に開始番号、E3に終了番号を指定する方法がわかりません。ご教授お願いします

Aベストアンサー

>D3に開始番号、E3に終了番号を指定する方法がわかりません。
 ⇒マクロ記録でD3、E3を選択すればコード化されますが、開始/終了番号での振舞はご自身でコード化しない限り、マクロ記録では設定できません。 
  多分、D3、E3に入力される情報によって、対象範囲の該当セルフォント色を変更したいという事ではないでしょうか。
  ならば、D3,E3セルに入力する情報と対象範囲との関連付けを明示しないと問題解決しませんのでこの質問は一旦締めて、再質問しては如何でしょうか。

Qエクセル97のセル内の特定の文字のみ網掛けするのは?

エクセルで文字を入力した文字列のある一部を網掛けしたいができない、どうすれば出来るのでしょうか

Aベストアンサー

網掛けは無理でしょうが、同様の効果をだすことはできます。(Excelだけで行ってみます)
Excelなので長文はWordに譲るとして、1行数十文字を対象にしてみます。

例として、文字『ABBBCDEF』のBBBに網掛け(モドキ)をしてみます。

表示するシートとは別のシートを作業用に使います。
1.そのシートの枠線はツール→オプションの表示タグで枠線のチェックをはずして非表示にしておきます。
2.『ABBBCDEF』を作業用シートに入力し左揃えにします。
3.『BBB』部分が1つのセルの中に入るように『BBB』の近くの列幅を調整します。
4.『BBB』が入力されたように見えるセルを書式設定のパターンでグレーで塗ります。
5.『ABBBCDEF』全ての文字を覆うようにセルを選択してコピーします。
6.表示したいシートに戻って、Shiftを押しながら編集→図のリンク貼り付け を行います。

網掛けに見えます?作業用のシートの『BBB』部分のセル幅を変えると元のシートの網掛け部分が変化すると思います。ほとんどダマシですが、表題や図の説明にこのようにして利用しています。そのままでもごまかせますが、図なので拡大したりして別の効果が出ます。ご参考に。

網掛けは無理でしょうが、同様の効果をだすことはできます。(Excelだけで行ってみます)
Excelなので長文はWordに譲るとして、1行数十文字を対象にしてみます。

例として、文字『ABBBCDEF』のBBBに網掛け(モドキ)をしてみます。

表示するシートとは別のシートを作業用に使います。
1.そのシートの枠線はツール→オプションの表示タグで枠線のチェックをはずして非表示にしておきます。
2.『ABBBCDEF』を作業用シートに入力し左揃えにします。
3.『BBB』部分が1つのセルの...続きを読む

Qエクセルで、セルに「合格」という文字が入ったら、そのセルの入った行全体に灰色の網掛けがかかるようにできますでしょうか?

ほぼタイトル通りなのですけれど、
エクセル(97)であるセルに「合格」という
文字列が入りましたら、そのセルの入った
行全体(表の中の事なので表の中のみ)に灰色の
網掛けがかかるようにできますでしょうか?

「条件書式」を使いますと、一つのセルに「合格」と
入りますと、そのセルのみに網掛けがかかってしまうようですし、行全体に網掛けがかかる方法を探しています。。

何か機能を組み合わせていい方法はないでしょうか?

Aベストアンサー

答えは出ているのですが
(1)条件付書式を使うこと
(2)「式が」を使わないと出来ないこと
(3)書式設定を
    (A)指定した1セル
    (B)同行で指定した複数セル(セル範囲)
       A1:H1など
    (C)行全体
   にすることがあり得ますが、
 (A)は問題ない。
(4) (B)同行で指定した複数セル(セル範囲)
  (A)範囲指定して条件つき書式の操作に入る。
     「式が」で=A1="合格"としないで
      =$A1="合格"とする。
     (範囲指定したセルは式複写したように考えれ      ば良いように思える)
      (以下=IF(と書いているが、そう考えると旨      く行くという飽くまで考え方であって、エク      セルシステムがそうしていると言っているわ      けでない。)
      A1セルでは=IF(A1="合格",設定書式,何もし      ない)
      B1セルでは=IF(A1="合格",設定書式,何もし      ない)
C1セルでは=IF(A1="合格",設定書式,何もしな      い)
・・・・・以下略
 $が付いているのでAが変化せず、横方向指定なので1も変化せず。
(5)(4)で有るなら、例えばA1:H10を範囲指定して、「式が」で=$A1="合格"とすれば、10行まで一遍に
設定できるかと言うと、=$A1と、第2行目では、Aを$で固定しているのでA、1は下方向複写と考え2に変化させて設定してくれるので  
A2セルでは=IF(A2="合格",設定書式,何もしない)
      B2セルでは=IF(A2="合格",設定書式,何もし      ない)
C2セルでは=IF(A2="合格",設定書式,何もしな      い)・・以下略
が設定されるので、A1:H10全体が一遍に設定できるという理屈である。
  従って、#1、#2のご回答と一部違った結論ですが
私がやったところでは、列の$は不要、書式の複写は(しても出来るが)不要と思う。
やって見てください。
      

答えは出ているのですが
(1)条件付書式を使うこと
(2)「式が」を使わないと出来ないこと
(3)書式設定を
    (A)指定した1セル
    (B)同行で指定した複数セル(セル範囲)
       A1:H1など
    (C)行全体
   にすることがあり得ますが、
 (A)は問題ない。
(4) (B)同行で指定した複数セル(セル範囲)
  (A)範囲指定して条件つき書式の操作に入る。
     「式が」で=A1="合格"としないで
      =$A1="合格"とする。
  ...続きを読む

Q判断範囲で条件に合ったものの内の指定数字以上のカウント方法。

 初めまして、よろしくお願いします。
 判断範囲で条件に合ったものの内の指定数字以上のカウント方法で何かよい方法はないかと考えています。

例 20以上をカウント

赤 10  赤   1
赤 15  青   3
赤 20  黄   2
青 21  緑   0
青 14
青 22
青 30
黄 11
黄 13
黄 40
黄 21
黄 14
緑 11
緑 12
緑 18


 よろしくお願いします。

 

Aベストアンサー

    A    B    C    D
1    赤   10   赤   1
2    赤   15   青   3
3    赤   20   黄   2
4    青   21   緑   0
5    青   14
6    青   22
7    青   30
8    黄   11
9    黄   13
10   黄   40
11   黄   21
12   黄   14
13   緑   11
14   緑   12
15   緑   18

D1=SUMPRODUCT(($A$1:$A$15=C1)*($B$1:$B$15>=20))
★下にコピー

Q検索条件内で、特定範囲の数が入っているセル個数をカウント

指定された範囲に含まれるセル内で、検索条件に一致し(たとえば○○市)、なおかつ特定範囲の数(100以上、100~30、30~20、20未満)が入っているセルの個数をカウントの仕方を教えてください。

Aベストアンサー

> 範囲の数(100以上、100~30、30~20、20未満)が入っているセルの個数をカウント

データの配置状況が、いまいちはっはりしませんが、取り敢えずの例です。
カウント区分がダブリますので、100未満~30以上 のようにしたとき、
A1:A20に"○○市"等のデータがあり、B列に数値が入力されているとすれば、

"○○市"であって100以上のセル数は、

=SUMPRODUCT((A1:A20="○○市")*(B1:B20>=100))

"○○市"であって100未満かつ30以上のセル数は、

=SUMPRODUCT((A1:A20="○○市")*(B1:B20<100)*(B1:B20>=30))

こんな感じでどうでしょうか。


このカテゴリの人気Q&Aランキング

おすすめ情報