別のプログラムからExcelに情報を定期的にインポートするとします。情報には数値が含まれますが、空白を含めることもできます。インポートされた情報に条件付き形式を使用して、ゼロ値を強調表示することをお勧めします。問題は、セルを強調表示してゼロかどうかを確認する条件付きフォーマットを追加するだけの場合、「ゼロ」値も含まれているため、条件によって空白のセルも強調表示されることです。

この窮状にはいくつかの異なる解決策があります。 1つの解決策は、2つの条件を使用する条件付き形式を適用することです。最初の条件はブランクをチェックし、2番目の条件はゼロ値をチェックします。

空白をチェックする条件ではフォーマットを調整する必要はありませんが、ゼロ値をチェックする条件では調整できます。これが機能するのは、最初の条件が満たされた場合(セルが空白の場合)、2番目の条件がテストされないためです。次の手順を実行します:

。条件付きでフォーマットする範囲を選択します。 (この例では、範囲A2:A99を選択したと仮定します。)

。 「フォーマット」メニューから「条件付きフォーマット」を選択します。 Excelは、[条件付き書式]ダイアログボックスを表示します。

。条件1の最初のドロップダウンリストを使用して、[式]を選択します。

。条件1の式ボックスに、式= ISBLANK(A2)を入力します。

(図1を参照)

。 [追加]をクリックします。 Excelは、ダイアログボックスに2番目の条件を追加します。

。条件2の最初のドロップダウンリストを使用して、[セル値は]を選択します。

。条件2の2番目のドロップダウンリストを使用して、[等しい]を選択します。条件2の値ボックスに0を入力します(図2を参照)

。条件2の[フォーマット]ボタンをクリックします。Excelに[セルのフォーマット]ダイアログボックスが表示されます。

。ダイアログボックスのコントロールを使用して、必要に応じてフォーマットを変更します。

。 [OK]をクリックして、[セルの書式設定]ダイアログボックスを閉じます。

。 [OK]をクリックして、[条件付き書式]ダイアログボックスを閉じます。書式設定は、手順1で選択したセルの範囲に適用されます。

もう1つの解決策は、2つの条件を1つの条件に結合することです。次の手順に従ってください:

。条件付きでフォーマットする範囲を選択します。 (この例では、範囲A2:A99を選択したと仮定します。)

。 「フォーマット」メニューから「条件付きフォーマット」を選択します。 Excelは、[条件付き書式]ダイアログボックスを表示します。

。条件1の最初のドロップダウンリストを使用して、[式]を選択します。

。条件1の式ボックスに、式= AND(A2 = 0、A2 <> “”)を入力します。

。条件1の[フォーマット]ボタンをクリックします。Excelに[セルのフォーマット]ダイアログボックスが表示されます。

。ダイアログボックスのコントロールを使用して、必要に応じてフォーマットを変更します。

。 [OK]をクリックして、[セルの書式設定]ダイアログボックスを閉じます。

。 [OK]をクリックして、[条件付き書式]ダイアログボックスを閉じます。書式設定は、手順1で選択したセルの範囲に適用されます。

手順4で使用した数式は、値が0であり、セルが空白でないことを確認します。 AND関数は、両方の基準が満たされた場合にのみ、数式がTrueを返し、形式が適用されることを確認します。

他にも使用できる数式はいくつもあります。たとえば、次の各式は、ステップ5または4のいずれかで置き換えることができます。

  • = AND(COUNT(A2)= 1、A2 = 0)

  • = AND(A2 = 0、NOT(ISBLANK(A2)))

  • = AND(A2 = 0、LEN(A2)> 0)

NOT(ISBLANK(A2))(A2 = 0)

空白を無視してゼロ値を強調表示するさらに高速な方法が必要な場合は、マクロの使用を検討してください。マクロをインポートして実行するだけなので、マクロはより高速になります。セルの範囲を選択して、条件付き書式の数式を入力する必要はありません。次のマクロは、使用できるマクロの例です。

Sub FormatRed()

TotalRows = 65000     ColNum = 1

For i = 1 To Cells(TotalRows, ColNum).End(xlUp).Row         Cells(i, ColNum).Interior.ColorIndex = xlAutomatic         If IsNumeric(Cells(i, ColNum).Value) Then             If Cells(i, ColNum).Value = 0 Then                 Cells(i, ColNum).Interior.ColorIndex = 3             End If         End If     Next End Sub

マクロは列Aのセルをチェックします(行1から65,000のセルをチェックします。必要に応じてこれを変更できます)。セルに数値が含まれ、その値がゼロの場合、セルは赤で塗りつぶされます。

セルに他のものが含まれている場合、セルは通常の色に戻されます。

注:

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

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

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

このヒント(2980)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excelribbon-Conditional_Formats_that_Distinguish_Blanks_and_Zeroes [空白とゼロを区別する条件付きフォーマット]