Cindyには、多くのセルで色を使用する完全にフォーマットされたワークシートがあります。

一部のセルには値があります。多くはしません。彼女は空の色付きのセルを数える方法を必要としており、これを行う簡単な方法があるかどうか疑問に思っています。

必要な情報を取得する方法はいくつかあります。 1つの方法は、次の手順を実行することです。

。カウントで使用する色を見つけます。

。 F5を押します。 Excelに[移動]ダイアログボックスが表示されます。

。 [特別]ボタンをクリックします。 Excelは、[特別に移動]ダイアログボックスを表示します。

(図1を参照)

。 [空白]ラジオボタンを選択します。

。 [OK]をクリックします。これで、ワークシートのすべての空白セルが選択されました。

。 Ctrl + Fを押します。 Excelは、[検索と置換]ダイアログボックスの[検索]タブを表示します。

。 [オプション]ボタンをクリックして、ダイアログボックスを展開します。 (図2を参照)

。 [フォーマット]ボタンをクリックします。 Excelに[形式の検索]ダイアログボックスが表示されます。

。 [塗りつぶし]タブが表示されていることを確認します。 (図3を参照)

。検索したい色をクリックしてください。 (これは、手順1で決定した色です。)

。 [OK]をクリックして、[形式の検索]ダイアログボックスを閉じます。

。 [すべて検索]をクリックします。

これらの手順を実行すると、Excelの[検索と置換]ダイアログボックスの下部に、色に一致するセルがいくつ見つかったかが表示されます。空白のセルのみを選択して検索を開始したため、結果のカウントは、色で塗りつぶされた空白のセルすべてになります。

もちろん、このカウントを何度も決定する必要がある場合、これらの手順は非常にすぐに面倒になる可能性があります。このような場合は、マクロを使用することをお勧めします。次のマクロは、選択した範囲の各空白セルをステップスルーし、パターンまたは色が含まれていて空であるかどうかを確認します。条件が満たされると、その色のカウンターが増加します。

Sub CountBlankColors1()

Dim c As Range     Dim J As Integer     Dim ColorCount(56) As Long

ActiveSheet.Range("a1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Select

For Each c In Selection         With c.Interior             If .Pattern <> xlNone Then                 If .ColorIndex <> xlNone Then                     If IsEmpty(c) Then                         ColorCount(.ColorIndex) = _                           ColorCount(.ColorIndex) + 1                     End If                 End If             End If         End With     Next c

sTemp = "These are the color counts" & vbCrLf & vbCrLf     For J = 0 To 56         If ColorCount(J) > 0 Then             sTemp = sTemp & "Color " & J & ": " & ColorCount(J) & vbCrLf         End If     Next J

MsgBox sTemp End Sub

もちろん、異なる色を個別に数えたくない場合もあります。

代わりに、合計でいくつの空白セルが任意の色で塗りつぶされているかを簡単に知りたい場合があります。その場合、マクロははるかに単純になります。

Sub CountBlankColors2()

Dim c As Range     Dim x As Long

x = 0     ActiveSheet.Range("a1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Select

For Each c In Selection         If c.Interior.Pattern <> xlNone Then             If c.Interior.ColorIndex <> xlNone Then                 If IsEmpty(c) Then x = x + 1             End If         End If     Next c     MsgBox "Number of colored blank cells: " & x End Sub

条件付きフォーマットを使用してセルに色を付けるかどうかは、これらのアプローチでは考慮されないことに注意してください。

(実際、条件付きフォーマットはまったく考慮されていません。)

注:

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

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

このヒント(12581)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。