Excelでは、ワークシートで値とテキストを使用するだけでなく、色を使用してデータを活気づけたり、意味を与えたりすることができます。ワークシートで色を使用する場合、特定の塗りつぶし色でフォーマットされたセルの数を数える方法があるかどうか疑問に思うかもしれません。このようなタスクを実行するための組み込み関数はExcelにはありませんが、ユーザー定義関数を使用して作成することはできます。以下は、黄色の塗りつぶし色でフォーマットされた範囲内のセルの数をカウントする例です。

Function CountYellow(MyRange As Range)

Dim iCount As Integer     Application.Volatile     iCount = 0     For Each cell In MyRange         If cell.Interior.ColorIndex = 6 Then             iCount = iCount + 1         End If     Next cell     CountYellow = iCount End Function

この関数を使用するには、ワークシートのセルで次のような数式を使用するだけです。

=CountYellow(A1:A99)

この例では、黄色の塗りつぶし色を使用するA1:A99の範囲のセルの数を返します。

CountYellow関数で、ColorIndexプロパティが6に等しいかどうかを確認するためにセルが調べられることに注意してください。他のVBAコーディングでは、色を定義する英語に近い定数を確認することに慣れている場合があります。この場合、通常の色定数は機能しません。代わりに、ColorIndexプロパティは、特定の色のパレットへの一連のインデックス値に基づいて機能します。さまざまな色に使用されているさまざまなインデックス値を確認したい場合は、ColorIndexプロパティのVBAオンラインヘルプファイルを参照してください。

この方法で範囲内のセルをウォークスルーする方法がわかれば、範囲内のセルを塗りつぶすために使用される色に基づいて、他のタイプの操作を簡単に実行できます。たとえば、単にセルの数を数える代わりに、範囲内のセルの値を合計したり、範囲内の値の平均を見つけることができます。あなたがする必要があるのは、最も内側のIf …​ EndIf構造のコードに適切な変更を加えることです。

注:

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

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

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