Trevには、複数のユーザーがレビューおよび更新する製品ごとの売上予測の表があります。予測は最初はさまざまな数式で設定されますが、ユーザーは数式の1つを含むセルに値を入力することで、数式を上書きできます。ユーザーがこれを行う場合、TrevがExcelにそのセルを何らかの方法で強調表示させると便利です。

あなたが取ることができるいくつかのアプローチがあります。まず、条件付き書式を使用して強調表示を行うことができます。条件付き書式ルールタイプを「セル値」を含むセルのみを書式設定に設定します

「等しくない」と入力し、比較として数式を入力します。これにより、セル内の値が数式が何であれ等しくない場合がわかりますが、潜在的な「落とし穴」は、人が数式をその数式の結果で上書きした場合です。たとえば、数式で「27」の結果が生成され、ユーザーがセルに「27」と入力したとします。もう1つの可能性は、名前付き定数で式を定義してから、その名前付き定数を条件付き形式で使用することです。次の手順に従ってください:

。リボンの[数式]タブを表示します。

。 [定義済みの名前]グループで[名前の定義]をクリックします。 Excelに[新しい名前]ダイアログボックスが表示されます。 (図1を参照)

。 [名前]ボックスに、この数式に割り当てる名前を入力します。この例では、CellHasNoFormulaを使用します。

。ダイアログボックスの下部にある[参照先]ボックスにあるものを選択し、[削除]を押します。これにより、以前にExcelにあったものがすべて削除されます。

。 [参照先]ボックスに次の式を入力します:

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

これで、いくつかの条件付きフォーマットを設定し、この名前付き数式をフォーマットで使用できます。条件付き書式ルールタイプを[数式を使用して書式設定するセルを決定する]に設定し、条件に次の数式を入力するだけです。

=CellHasNoFormula

数式は、セルに数式があるかどうかに応じて、TrueまたはFalseを返します。数式がない場合はTrueが返され、指定した形式がセルに適用されます。もう1つのアプローチは、ユーザー定義関数を使用してTrueまたはFalseを返し、条件付き形式を設定することです。次のような非常に単純なマクロを使用できます。

Function IsFormula(Check_Cell As Range) As Boolean     Application.Volatile     IsFormula = Check_Cell.HasFormula End Function

次に、条件付き書式ルールタイプを[数式を使用して書式設定するセルを決定する]として指定し、たとえばセルC1を条件付きで書式設定する場合は、条件に次の数式を入力できます。

=NOT(IsFormula(C1))

セルに数式がない場合、数式はTrueを返すため、条件付き形式が適用されます。これらの数式のいずれかを使用して数式がセルにあるかどうかを判断することの唯一の欠点は、セル内の数式が別の数式に置き換えられているかどうかを判断できないことです。これは、マクロアプローチと定義された式アプローチの両方に適用されます。まったく異なるアプローチは、ワークシートを少し考え直すことです。ユーザー入力用のセルを、数式を使用するセルから分離できます。数式では、IF関数を使用して、ユーザーがユーザー入力セルに何かを入力したかどうかを確認できます。そうでない場合は、数式を使用して値を決定します。その場合、数式よりもユーザーの入力が使用されます。このアプローチにより、ユーザーが上書きすることなく、必要な数式を保持できます。これにより、数式とワークシートの結果の整合性が向上します。

注:

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

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

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

このヒント(9270)は、Microsoft Excel 2007、2010、および2013に適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excel-Highlighting_Values_in_a_Cell [セル内の値の強調表示]