Michalaには、さまざまな色のさまざまなテキストを含む調査回答のワークシートがあります。たとえば、調査の回答が「犬が嫌い」の場合、「犬」という単語は赤で表示され、残りのテキストは黒で表示されます。応答には複数の色が含まれている場合があります。たとえば、「犬と猫が好きです」という応答では、「犬」という単語が赤で、「猫」という単語が青で表示されます。 Michalaは、セルの範囲を強調表示し、赤や青などの特定の色のテキストを含むセルの数を数える方法を必要としています。

これは、カウントを実行できるユーザー定義関数を開発することによって最もよく行われます。次の例では、セルの範囲をステップスルーし、指定したカラーインデックス値をカウントします。

Function CountColorIndex(rng As Range, iColor As Integer)

Dim v As Variant     Dim rCell As Range     Dim str As String     Dim sChar As String     Dim x As Integer     Dim iCount As Integer

iCount = 0     For Each rCell In rng         v = rCell.Font.ColorIndex         If IsNull(v) Then             For x = 1 To Len(rCell.Value)

If rCell.Characters(x, 1).Font.ColorIndex _                   = iColor Then                     iCount = iCount + 1                     Exit For                 End If             Next         ElseIf v = iColor Then             iCount = iCount + 1         End If     Next     CountColorIndex = iCount End Function

この関数は、最初にセル全体のフォントの色を調べます。セルの色がNullの場合、個々の文字の色が変更されているため、関数は各文字の調査を開始します。一致する色が見つかると、カウント(iCount)がインクリメントされ、関数は各文字の検索を停止します。

セルの色がNullでない場合、関数はセル全体のフォントの色が目的の色と一致するかどうかを判断します。含まれている場合は、カウントが増加します。

このプロセスは、指定された範囲内のセルごとに繰り返され、関数はカウントの値を返します。この関数は次のように使用します:

=CountColorIndex(B7:D42,3)

この数式は、範囲B7:D42をチェックして、赤色のインスタンスがあるかどうかを確認します。次に、カウントが式によって返されます。

この関数はカラーインデックス値に依存していることに注意してください。

赤の通常のデフォルト値は3、青の値は5ですが、これらの値はユーザーが変更でき、使用しているExcelのバージョンによって異なる場合があります。関数が目的の結果を返すようにするには、数式の2番目のパラメーターで指定されたカラーインデックス値を変更して、特定のブックで使用されるカラーインデックスを表すようにする必要があります。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2901)は、Microsoft Excel 97、2000、2002、および2003に適用されます。