ワークシートのセルには、値を含めることも、数式を含めることもできます。いつか、数式を含むワークシート内のすべてのセルに色を付けて、それらのセルを強調表示したい場合があります。この問題に取り組み、解決する方法はいくつかあります。ハイライトを頻繁に行う必要がない場合は、手動によるアプローチが最適な場合があります。

次の手順に従ってください:

。 F5またはCtrl + Gのいずれかを押します。 Excelに[移動]ダイアログボックスが表示されます。

。 [特別]をクリックします。 Excelは、[特別に移動]ダイアログボックスを表示します。 (図1を参照)

。 [数式]ラジオボタンを選択します。

。 [OK]をクリックします。

この時点で、数式を含むワークシートのすべてのセルが選択され、それらのセルに色を追加したり、必要に応じてフォーマットしたりできます。このアプローチは、必要に応じて、次のようなマクロを使用して自動化できます。

Sub ColorFormulas()

ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas, 23).Select     With Selection.Interior         .ColorIndex = 6         .Pattern = xlSolid     End With End Sub

数式を含むさまざまなセルを強調表示するために、このマクロを必要なだけ実行できます。唯一の問題は、以前に強調表示されたセルから数式が削除された場合、強調表示が残ることです。自動的には削除されません。この場合、別のマクロアプローチが義務付けられています。このマクロは、マクロを実行する前に選択したセルの範囲に作用します。

Sub ColorFunction()

For Each cell In Selection         If cell.HasFormula Then             With cell.Interior                 .ColorIndex = 6                 .Pattern = xlSolid             End With         Else             cell.Interior.ColorIndex = xlNone         End If     Next cell End Sub

マクロは、範囲内の各セルをチェックします。セルに数式が含まれている場合は、強調表示されます。セルに数式が含まれていない場合、ハイライトはオフになります。

もう1つの考えられる解決策は、Excelの条件付き書式設定機能とともにユーザー定義関数を使用することです。 VBAエディターで次の関数を作成します:

Function CellHasFormula(c As Range) As Boolean     CellHasFormula = c.HasFormula End Function

この関数を配置すると、Excelの条件付き書式設定機能(ExcelTipsの他の場所で詳しく説明されています)を使用して、数式が何を返すかを確認できます。つまり、次の数式の結果をチェックする条件付き形式を設定します。

=CellHasFormula(A1)

結果がtrueの場合(セルに数式が含まれている場合)、条件付き形式が適用されます。

必要がなければ、条件付き書式設定ルートを使用するためにVBAマクロを作成する必要がないことに注意してください。 (一部の人々はマクロの使用に自然な嫌悪感を持っています。)代わりに、次の手順に従うことができます:

。 Ctrl + F3を押します。 Excelに[名前の定義]ダイアログボックスが表示されます。

。 (ダイアログボックスの上部にある)[名​​前]フィールドに、FormulaInCellなどの名前を入力します。

。 [参照先]フィールド(ダイアログボックスの下部)に、次のように入力します。

。 [OK]をクリックします。

これで、条件付き書式を設定するために前に概説した手法に従うことができます。唯一の違いは、条件付き形式では、代わりに次の式をチェックする必要があることです。

=FormulaInCell

注:

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

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

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