人に聞けない痔の悩み、これでスッキリ >>

エクセル初心者です。
エクセルセルに
佐藤
鈴木
青山
渡辺
と入力されてあって佐藤と鈴木の文字の色が青だった場合文字色(青)がついているセルをカウントし,あるセルに2と表示することはできるのでしょうか。条件付書式や検索と思いましたがわかりません。よろしくお願いします。

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

A 回答 (3件)

 質問者様お使いのエクセルのバージョンが不明なので何がアレですが


いちおう 2000 で作成した経験からアドバイスさせていただきます。


>文字色(青)がついているセルをカウントし,

1 残念ながらマクロを使わないと,ご希望のことは難しいようです。
  以下に手順を記しますので参考にしてください。

(1) [ツール]-[マクロ]-[VisualBasicEditor](またはAlt + F11)で
 VBE画面にします。

(2) VBE画面上で[挿入]-[標準モジュール]を選択します。
 するとコードウィンドウが出ますので、以下のコードを記します。
 (コピー&ペーストでもOK)

----------------------------------------------------------------
Function SpecialCell(targetRange As Range, _
intColor As Integer) As Integer
'赤は3,緑は4,青は5,黄は6
Dim myCell As Range

For Each myCell In targetRange
If myCell.Font.ColorIndex = intColor _
Or myCell.Interior.ColorIndex = intColor Then
SpecialCell = SpecialCell + 1
End If
Next
End Function
----------------------------------------------------------------

(3) 元のワークシートに戻って、カウント結果を表示させたいセルに、

赤字のカウントは =SpecialCell(A1:E5,3)
青字のカウントは =SpecialCell(A1:E5,5)
黄字のカウントは =SpecialCell(A1:E5,6)

 などとすればOKです。

 ただし、フォント色が黄でセル色が青などというのは、どちらにも
カウントされてしまうので注意が必要です。


 ☆参考:ブックの標準カラーパレットのインデックス番号
  (VBエディタのヘルプにて「ColorIndex」を検索、参照した)

  1 黒   2 白   3 赤   4 黄(薄)緑 5 青
  6 黄   7 桃色  8 水色  9 茶色   10 緑
  11 紺    (濃い緑)

以下 ~ 56 まであるようです。



2 別解(参考)
-----------------------------------------------------------
Function ColoredCell(rngArg As Range, rngSample As Range) As Long
For Each c In rngArg
If c.Interior.ColorIndex = rngSample.Interior.ColorIndex Then
ColoredCell = ColoredCell + 1
End If
Next
End Function
----------------------------------------------------------------
 使う際には =ColoredCell(A1:A10,A5) といったように、第1引数は
調べたい範囲、第2引数には指定する色の(サンプル)セルを当てる。
 ※SUMIF 関数の併用も可



2 実は、マクロを使わない方法があります。
  5~6年程前に、何処かで教わった記憶があります。

  色を判定する式(=GET.CELL(**,**))をブックに登録、判定結果を
 表示したいセルに、登録した式の定義名で記述する。
  その判定結果を SUMIF や COUNTIF 関数の引数として再利用する。

 以下は、その手順です。

 (1) 色を判定する式を登録
   メニューバー「挿入」→「名前」→「定義」名前の定義画面にて
  「参照範囲」欄に
   「=GET.CELL(検査の種類を指定する番号,判定したいセル番地)」
   名前欄に式の名前を(「文字の色」や「セルの色」等)付けて
  「追加」→「OK」で登録完了
☆検査の種類を指定する番号とは?
20→フォントは太字か否か?を判定
24→文字フォントの色を判定
63→セルの塗りつぶし色を判定
 
 なお、後から書式を変更しても結果が自動的には更新されないので、
NOW 関数を組み込み「F9」キーで更新させた方が良いようです。
 例「=GET.CELL(**,**)+NOW()*0」(0を足している為、値に影響なし)

 (2) 判定した結果を表示させる
   判定結果を表示したいセルに「=定義した名前」という式を入力
  すると色の種類すなわち色の番号を判定結果として表示してくれる
   色の番号(Excel のヘルプでカラーインデックスを参照できる)
   例☆黒字(無指定)=>0
     赤      =>3
     青      =>5
     緑      =>10
     薄緑     =>4
     ※その他も、実際に試してみれば結果は分かるはず

 (3) 判定した結果を、SUMIF や COUNTIF関数の引数として利用する。

 言葉で説明するのは非常に難しくこれで理解していただけるかどうか
自信がありませんが、この、色の判定式を登録してしまうという方法は
Excel97 から Excel2002までのバージョンで活用できることは確認済み
です。 もちろんこれも SUMIF 関数との併用(数字として計算する)が
可能です。
 実際のサンプルファイルを見ていただければいいのですが、なかなか
良い方法が思いつきません。

 Excel2007 で読み込んでも反映されましたが、2007でどう作成するの
かは、残念ながら 2007 での作成経験がないので説明できません。



 ところで、この OkWave には Office 系ソフト専門のカテゴリもあり
ます。 そっちの方が詳しい人が多いと思うので、今後は使用ソフトの
バージョンも併記してそちらで質問されるようにした方が解決が速いと
思われます。

http://okwave.jp/207/218/c232.html

 なお、老婆心ながら、その場合の複数カテゴリにわたる(多重投稿)
マルチポストには気をつけましょう。

参考URL:http://miyahorinn.fc2web.com/faq/faq030.html,htt …
    • good
    • 5
この回答へのお礼

丁寧なご回答ありがとうございます。
参考にさせていただきます。
返信が遅れて申し訳ありませんでした。

お礼日時:2009/08/11 05:47

普通の数式ではできません。


Alt+F11でマクロを追加してください。
こんな感じで↓

Function COUNTCOLOR(data As Range, color As Integer)
Application.Volatile
Count = 0
For Each c In data
If c.Font.ColorIndex = color Then
Count = Count + 1
End If
Next c
COUNTCOLOR = Count
End Function

それで使うときは
=COUNTCOLOR(A:A,1)
という感じで使ってください。上記の例では1番目の引数で範囲を、2番目の引数で色インデックスを指定します。
    • good
    • 7
この回答へのお礼

ありがとうございました。

お礼日時:2009/08/11 05:51

書式を参照する関数はありませんので、VBA(マクロ)を使うことになります



セルA1の文字色は
Range("A1").Font.ColorIndex
で取得できます。
ColorIndexは色番号で、青は5、赤は3などです。(URI参照)

青を数えるユーザー定義関数 CountBlue(範囲) は
Function CountBlue(範囲 As Range)
 cnt = 0
 For Each r In 範囲
  If r.Font.ColorIndex = 5 Then
   cnt = cnt + 1
  End If
 Next
 CounrBlue = cnt
End Function
という風になります。
これをVBEで作成して、セルに
=CountBlue(A1:A5)
などというように書けば、文字が青のものを数えてくれます

参考URL:http://www.relief.jp/itnote/archives/000482.php
    • good
    • 4
この回答へのお礼

ありがとうございました。

お礼日時:2009/08/11 05:53

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Qエクセル・・色の着いたセルの個数を数える関数はある?

エクセルの表内で塗りつぶしされているセルだけを数える様な関数はありますか?
セルには文字や数値は入力されておらず、塗りつぶしているだけです。
よろしくお願いいたします。

Aベストアンサー

こんにちは。

ユーザー定義関数で作ってみました。Ver4 マクロ関数で十分だと私は思いますが、Ver 4 マクロ関数ではケシカランというような方?は、以下のようなVBAでの解決方法が便利かなって思います。

VB Editor の標準モジュールに貼り付けてください。(挿入-標準モジュール)

なお、一般のブックの標準モジュールのユーザー定義関数に、Public キーワードをつけたところで、グローバル関数になるわけではありませんので、もしその点に不安のある方は、マニュアル等で、確認されたほうがよいかもしれませんね。

なお、以下は、引数のインデックスに0を入れると、配列出力するようにしてあります。

'------------------------------------
Function ColorCellCount(範囲 As Range, Optional インデックス As Integer = 1, Optional パターン As Integer = 0)
  Dim myRng As Range
  Dim myIndex As Integer
  Dim myPattern As Integer
  Dim myColor() As Integer
  Dim Ret() As Double
  Dim c As Range
  Dim i As Long
  Dim j As Long
  Set myRng = 範囲
  myIndex = インデックス
  myPattern = パターン
For Each c In myRng
   On Error Resume Next
   If myPattern = 0 Then
     i = WorksheetFunction.Match(c.Interior.ColorIndex, myColor, 0)
   Else
     i = WorksheetFunction.Match(c.Font.ColorIndex, myColor, 0)
   End If
   If i = 0 Then
     ReDim Preserve myColor(j)
     ReDim Preserve Ret(j)
      If myPattern = 0 Then
       myColor(j) = c.Interior.ColorIndex
      Else
       myColor(j) = c.Font.ColorIndex
      End If
      Ret(j) = 1
     j = j + 1
     On Error GoTo 0
     Else
      Ret(i - 1) = Ret(i - 1) + 1
   End If
  Next
  If myIndex <= 0 Then
   ColorCellCount = Ret()
  ElseIf myIndex > UBound(Ret) + 1 Then
   ColorCellCount = Ret(UBound(Ret()))
   Else
   ColorCellCount = Ret(myIndex - 1)
  End If
  Set myRng = Nothing
End Function

ワークシート上での使い方は、

A列
色付き
色なし
色なし
色付き
色付き

=ColorCellCount(A1:A5, 1 )

とすれば、上から数えて、1番目の色のセルの数が出ます。

=ColorCellCount(A1:A5, 2 )
を入れれば、色なしのセルの数が出ます。

=SUMPRODUCT(ColorCellCount(A1:A5, 0 ))

とすれば、全部の合計が出ます。

なお、
=ColorCellCount(A1:A5,1,1)

とすれば、文字の色を数えます。

こんにちは。

ユーザー定義関数で作ってみました。Ver4 マクロ関数で十分だと私は思いますが、Ver 4 マクロ関数ではケシカランというような方?は、以下のようなVBAでの解決方法が便利かなって思います。

VB Editor の標準モジュールに貼り付けてください。(挿入-標準モジュール)

なお、一般のブックの標準モジュールのユーザー定義関数に、Public キーワードをつけたところで、グローバル関数になるわけではありませんので、もしその点に不安のある方は、マニュアル等で、確認されたほうがよいかもし...続きを読む

Q【Excel】 色の一致するセル数をカウントしたい。

こんにちは。

ある条件にあてはまるセルに、書式でセルの色を設定してあります。
いくつかの条件で色分けしてあるのですが、これらのセルの色が「赤」は幾つ、「青」は幾つというふうに、
カウントすることは出来るのでしょうか。

よろしくお願いいたします。

Aベストアンサー

繰り返し何度も出てくる質問です。関数でと考えているなら、直接はできません。
VBAで中身たった1行のユーザー関数を作ればできます。
http://hp.vector.co.jp/authors/VA016119/hajimete/udf1.html
など
Googleで「エクセル セル 色 カウント」などで照会すると似た質問が出る。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1225959
にはCELL関数のことも載っているが、旧いバージョンの関数なので
私は、除外して言ってます。

Qエクセルで特定の色の数字だけ計算させることはできますか?

売上げ表内で、A社は赤、B社は青と売上げ数字が混在しています。
最終的にその月の売上げを社ごとに計算したいのですが、混在しているので、今は手計算しています。
せっかく色分けしているので、赤の数字だけを足す、
青の数字だけを足すということができれば楽なのになぁと思い質問させていただきました。
SUMIF関数などでできるのでしょうか?
エクセルは2003を使用しています。
アドバイスお願いいたします。

Aベストアンサー

こんにちは。KenKen_SP です。

通常、関数は値しか扱えません。つまり、フォント色やセル背景色などの書式
を関数で扱うことはできません。では、どうするか? 方法は2つあります。

1. 4.0マクロ関数を使う
  このカテゴリー内で GET.CELL で検索すると過去に類似の質問があります。
  参考にして下さい。

2. マクロ(VBA)を使う
  フォント色で集計を行うツールを作ってみました。お試し下さい。

  【手順】
  1)[Alt]+[F11]で Visual Basic Editor (以下 VBE )を起動
  2)[挿入]-[標準モジュール]
  3)2)で開いたスペースに以下のコードをコピー&ペースト
  4)VBE を閉じる

  【使い方】
  [ツール]-[マクロ]-[マクロ]で実行

'以下コードです。


Sub フォント色別に数値集計()

  Dim rngTARGET As Range
  Dim rngTEMP  As Range
  Dim DIC    As Dictionary
  Dim rngCELL  As Range
  Dim lngC_IDX As Long
  Dim dblNUM  As Double
  Dim vntKEY  As Variant
  Dim i     As Long
  
  'ユーザーに集計範囲を指定してもらう
  If TypeName(Selection) = "Range" Then
    Set rngTEMP = Selection
  Else
    Set rngTEMP = ActiveCell
  End If
  On Error Resume Next
  Set rngTARGET = Application.InputBox( _
    Prompt:="フォント色別に数値を集計します。" _
        & vbCrLf & "集計範囲をマウスで選択して下さい。", _
    Title:="集計範囲の選択", _
    Default:=rngTEMP.Address, _
    Type:=8)
  Set rngTEMP = Nothing
  If rngTARGET Is Nothing Then Exit Sub
  On Error GoTo 0
  
  'フォント色別に集計開始
  Set DIC = CreateObject("Scripting.Dictionary")
  For Each rngCELL In rngTARGET
    With rngCELL
      If .Value <> "" And IsNumeric(.Value) Then
        lngC_IDX = .Font.ColorIndex
        If Not DIC.Exists(lngC_IDX) Then
          DIC.Add Key:=lngC_IDX, Item:=.Value
        Else
          dblNUM = .Value + DIC.Item(lngC_IDX)
          DIC.Item(lngC_IDX) = dblNUM
        End If
      End If
    End With
  Next rngCELL
  
  '結果出力
  On Error Resume Next
  Set rngTARGET = Application.InputBox( _
    Prompt:="集計が終了しました。結果の貼り付け先を指定して下さい", _
    Title:="結果出力", _
    Type:=8)
  If Not rngTARGET Is Nothing Then
    Set rngTARGET = rngTARGET.Cells(1, 1)
    i = 0
    Application.ScreenUpdating = False
    For Each vntKEY In DIC.Keys
      With rngTARGET
        With .Offset(i, 0)
          .Font.ColorIndex = vntKEY
          .Value = "FONT COLOR:= " & vntKEY
        End With
        .Offset(i, 1).Value = CDbl(DIC.Item(vntKEY))
      End With
      i = i + 1
    Next vntKEY
  End If

Terminate:
  On Error GoTo 0
  Application.ScreenUpdating = True
  Set rngTARGET = Nothing
  Set DIC = Nothing

End Sub

こんにちは。KenKen_SP です。

通常、関数は値しか扱えません。つまり、フォント色やセル背景色などの書式
を関数で扱うことはできません。では、どうするか? 方法は2つあります。

1. 4.0マクロ関数を使う
  このカテゴリー内で GET.CELL で検索すると過去に類似の質問があります。
  参考にして下さい。

2. マクロ(VBA)を使う
  フォント色で集計を行うツールを作ってみました。お試し下さい。

  【手順】
  1)[Alt]+[F11]で Visual Basic Editor (以下 VBE )を起動
  2)...続きを読む

Qエクセルでの指定文字 カウントについて

エクセルで並んだデータでの指定した名前だけの個数をカウントするにはどうすればいいのでしょうか?

山田 高橋 佐藤
高橋 梅田 赤田
 西 山田 梅田
佐藤 山田 梅田

名前が並んだデータで「高橋」という名前が何個あるのかをカウントしたいのですがどうすればいいのでしょうか?

Aベストアンサー

 データは入力されているセルの範囲を「A1:C4」とすれば、

=COUNTIF(A1:C4,"高橋")

QexcelのCOUNTIF関数で、『範囲=色のついたセル』に設定したいです。

excelのCOUNTIF関数で、『範囲』の設定で、『ある一定の範囲内の色のついたセル』を
範囲として選択したい場合、どのように操作したらよいでしょうか?

たとえば、A1~A30までのセルの中で、A9、A10、A18、A19、A20、A29、A30のセルが赤で、
そのうちのA10、A18、A29、A30に「○」の記号が入っていて、その○の数を調べたい場合です。

ご存知の方、よろしくお願いいたします。

Aベストアンサー

ワークシート関数ではセルの「色番号」は取得できません。
マクロ(ユーザ定義関数)が必要です。

ユーザ定義関数で「背景色が赤で、文字列が○のセル」を数えることも可能ですが、質問は「例えば」で書かれていそうなので、あまりきっちりとマクロを書くと修正が必要になりそうです。
そこで汎用的に使えそうな「手抜きバージョン」で回答します。

まず以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。

Function Cidx(ByVal trg As Range) As Integer
 With trg.Cells(1, 1).Interior
   If .ColorIndex = xlNone Then
     Cidx = 0
   Else
     Cidx = .ColorIndex
   End If
 End With
End Function

次にVBE画面を閉じてワークシート画面に戻り、
 =Cidx(A1)
の式を1行目の空いている列(例えばB列)に入力し、30行分下にコピーします。するとA列のセルの「色番号」が表示されます(背景色なしは0)
ただしセルに値を入力した後で背景色を変更した場合は、ユーザ定義関数の結果は自動的に変わりません。Alt+Ctrl+F9で強制再計算させる必要がありますのでご注意ください

後は別の関数で赤色(色番号=3)で「○」印があるセルをカウントします
 =SUMPRODUCT((A1:A30="○")*(B1:B30=3)*1)

ワークシート関数ではセルの「色番号」は取得できません。
マクロ(ユーザ定義関数)が必要です。

ユーザ定義関数で「背景色が赤で、文字列が○のセル」を数えることも可能ですが、質問は「例えば」で書かれていそうなので、あまりきっちりとマクロを書くと修正が必要になりそうです。
そこで汎用的に使えそうな「手抜きバージョン」で回答します。

まず以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい...続きを読む

QExcel 書式を関数で判断。

Excelで、「もしA1が緑色ならば」などと、書式を関数で判断させるにはどうすればよいのでしょうか。

Aベストアンサー

#1の回答通り関数はありません。マクロでなら可能です。

ここでは「色の付いたセルを合計」という質問が結構出ています。
http://okwave.jp/kotaeru.php3?q=2000523

Q(EXCEL)CELLの色をカウントする。

エクセルの関数で、CELLの色パターンを数えたりできるのでしょうか。例.セルのパターンが赤色のものをカウントするなど。

Aベストアンサー

#1さんの方法が本道だと思いますが、
「なぜ、そのセルを赤にしたのか?」を判定条件にしたらCOUNTIF関数等でもカウントできませんか?

Qエクセルでの文字色を数える関数に関して。。。

エクセルのセル内の文字色に関してのマクロを下記の通り書きました。


Function SpecialCell(targetRange As Range, _
intColor As Integer) As Integer
'赤は3,緑は4,青は5,黄は6
Dim myCell As Range

For Each myCell In targetRange
If myCell.Font.ColorIndex = intColor _
Or myCell.Interior.ColorIndex = intColor Then
SpecialCell = SpecialCell + 1
End If
Next
End Function

その後答えを求めるセルに
=SpecialCell(D5:D125,3)

これはちゃんと表示できます。

しかし、
=SpecialCell(D10,D8,D29,D49,D51,D57,3)

このようにセルの個別ごとに求めようとすると
#VALUE!

が出ますので引数が間違っているのだとは思うのですが、
この場合はどうすればよろしいでしょうか?

また、セル内に複数の色つき文字がある場合、
例えば同一セル内に
(1)(2)(3)
とあって、
(1)が赤
(2)が青
(3)がピンク

とした場合、
=SpecialCell(D5:D125,3)
これでは0と出てきてしまいます。。。
この場合はどういう風に数式をいれればよいのでしょうか?


以上2点ほどご教授いただけると助かります。
よろしくお願いいたします。。。

エクセルのセル内の文字色に関してのマクロを下記の通り書きました。


Function SpecialCell(targetRange As Range, _
intColor As Integer) As Integer
'赤は3,緑は4,青は5,黄は6
Dim myCell As Range

For Each myCell In targetRange
If myCell.Font.ColorIndex = intColor _
Or myCell.Interior.ColorIndex = intColor Then
SpecialCell = SpecialCell + 1
End If
Next
End Function

その後答えを求めるセルに
=SpecialCell(D5:D125,3)

これはちゃんと表示できます。

しかし、
=SpecialCell(D10,D8,D29...続きを読む

Aベストアンサー

kmetu さんの「セル範囲を()で囲む」を私のソースに適用させてもらって(^^;
ん? (1) は【丸囲み数字1】ですか?では

Function SpecialCell(TargetRange As Range, intColor As Integer) As Integer
  '赤は3,緑は4,青は5,黄は6
  Dim myCell   As Range
  Dim intIDX   As Integer
  Dim strVALUE  As String

  For Each myCell In TargetRange
    If myCell.Font.ColorIndex = intColor Then
      SpecialCell = SpecialCell + 1
      GoTo SkipFor
    End If
    If myCell.Interior.ColorIndex = intColor Then
      SpecialCell = SpecialCell + 1
      GoTo SkipFor
    End If
    If myCell.Value <> "" Then
      For intIDX = 1 To Len(myCell.Value)
        If myCell.Characters(intIDX, 1).Font.ColorIndex = intColor Then
          SpecialCell = SpecialCell + 1
        End If
      Next
    End If
  
SkipFor:
  Next
 
End Function

これで、=SpecialCell((D10,D8,D29,D49,D51,D57),3) のように書けばOKかと。

kmetu さんの「セル範囲を()で囲む」を私のソースに適用させてもらって(^^;
ん? (1) は【丸囲み数字1】ですか?では

Function SpecialCell(TargetRange As Range, intColor As Integer) As Integer
  '赤は3,緑は4,青は5,黄は6
  Dim myCell   As Range
  Dim intIDX   As Integer
  Dim strVALUE  As String

  For Each myCell In TargetRange
    If myCell.Font.ColorIndex = intColor Then
      SpecialCell = SpecialCell + 1
      GoTo SkipFor
    End I...続きを読む

Q背景色のカウント方法

いつもお世話になります。
Win7 Excell2010 です。

背景色のついたセルを関数でカウントしたく色々と調べました。
マクロでは知識不足の私なのでなんとか関数でと思ったのですができないようです。
何かいい方法で関数ではやはり無理でしよう

カウントするには関数か若しくはVBAでご指導仰ぎたいです。
私としては申し訳ないですが知識がなく是非ご協力いただけないでしょうか。

お願いは、例えば
B7 ~ B17 で “青色” B125=1
C7 ~ C17 で “青色” C125=2
D7 ~ D17 で “赤色” D125=1
 のようにカウントができればいいです。

よろしくお願いします。

Aベストアンサー

こんばんは!

7~17行目の色付けは手作業でしょうか?それとも条件付き書式によって色付けされているのでしょうか?
Excel2010以降であれば、
条件付き書式で色付けされているセルが判断できる「DisplayFormatオブジェクト」が使えます。

一例です。
A列の124行目以降のセルを検索したい色にあらかじめ塗りつぶしておいてください。

Sheetモジュールです。
尚、1行目は何らかのデータが入っているという前提です。
(A列の最終行を取得するために、ダミーでもよいので1行目に何らかのデータが必要です)

まず、手作業で色を付けている場合のコードです

Sub 条件付き書式なし()
Dim i As Long, j As Long, k As Long, endRow As Long, endCol As Long
endRow = ActiveSheet.UsedRange.Rows.Count
endCol = Cells(5, Columns.Count).End(xlToLeft).Column
If endRow > 123 Then
Range(Cells(124, "B"), Cells(endRow, endCol)).ClearContents
End If
For j = 2 To endCol
For i = 124 To endRow
For k = 7 To 17
If Cells(k, j).Interior.Color = Cells(i, "A").Interior.Color Then
Cells(i, j) = Cells(i, j) + 1
End If
Next k
Next i
Next j
Range(Cells(124, "B"), Cells(endRow, endCol)).SpecialCells(xlCellTypeBlanks) = 0
End Sub

次に条件付き書式によってセルが色付けされている場合のコードです。
(内容はほとんど一緒です)

Sub 条件付き書式で色付け()
Dim i As Long, j As Long, k As Long, endRow As Long, endCol As Long
endRow = ActiveSheet.UsedRange.Rows.Count
endCol = Cells(5, Columns.Count).End(xlToLeft).Column
If endRow > 123 Then
Range(Cells(124, "B"), Cells(endRow, endCol)).ClearContents
End If
For j = 2 To endCol
For i = 124 To endRow
For k = 7 To 17
If Cells(k, j).DisplayFormat.Interior.Color = Cells(i, "A").Interior.Color Then
Cells(i, j) = Cells(i, j) + 1
End If
Next k
Next i
Next j
Range(Cells(124, "B"), Cells(endRow, endCol)).SpecialCells(xlCellTypeBlanks) = 0
End Sub

※ 空白セルには「0」を表示するようにしていますが、「0」が目障りであれば
最後の
>Range(Cells(124, "B"), Cells(endRow, endCol)).SpecialCells(xlCellTypeBlanks) = 0
の1行を削除してください。m(_ _)m

こんばんは!

7~17行目の色付けは手作業でしょうか?それとも条件付き書式によって色付けされているのでしょうか?
Excel2010以降であれば、
条件付き書式で色付けされているセルが判断できる「DisplayFormatオブジェクト」が使えます。

一例です。
A列の124行目以降のセルを検索したい色にあらかじめ塗りつぶしておいてください。

Sheetモジュールです。
尚、1行目は何らかのデータが入っているという前提です。
(A列の最終行を取得するために、ダミーでもよいので1行目に何らかのデータが必要です)

まず...続きを読む

Qエクセルで条件により文字色を変える関数教えて下さい

エクセル2003を使っています。
セルa1に下限値,a2に上限値を入力、c3にデータを入力します。
入力したデータがa1下限値,a2上限値の範囲内であればデータの文字色はそのままで、その範囲を超えるとデータの文字色が「赤」に変わる数式を教えて下さい。よろしくお願いします。

Aベストアンサー

C1セルを選択し、次の方法で如何でしょうか。
(1)書式→条件付き書式
(2)条件を「セルの値が」、「次の値の間以外」、「=A1」、「=B1」で設定
(3)書式→フォントタブの色リストで赤を選択→OK
(参考)下行も同様にしたい場合、C1セル下方向にコピーして下さい。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング