web-dev-qa-db-ja.com

セルに数式が含まれている場合、条件付きでセルをフォーマットします

セルに数式が含まれている場合、セルを条件付きでフォーマットすることはできますか(セルを更新するときに自分や他のユーザーに警告するため)。

18
wilson

XLMと範囲名を使用して、条件付き書式を使用してこれを行うことができます

XLMを範囲名と条件付き書式で使用して、セルの内容に従ってスプレッドシートを自動的に書式設定する

  1. 範囲名を定義IsFormula= GET.CELL(48、INDIRECT( "rc"、FALSE))
  2. 数式をテストする条件付き書式設定セルを適用します。つまり、= IsFormulaを塗りつぶします
9
brettdj

リンクされた記事を理解するのが非常に難しいことがわかったので、brettdjの答えに基づいて構築しました。

  1. 新しい条件付き書式ルールを作成し、を選択します数式を使用して、フォーマットするセルを決定します
  2. 次の数式を挿入します:=ISFORMULA(INDIRECT("rc",FALSE))
  3. ルールをワークシート全体に適用する場合は、適用範囲として_$1:$1048576_を使用します。それ以外の場合は、任意の範囲を入力できます。

INDIRECT("rc",FALSE)は、現在のセルの参照を返します。これをシートで使用する場合は、ThisCellのような定義名を作成し、それを数式で使用します。何年も後に戻ってきて、「これは一体何のためにあるのか?」 。

11
toryan

これらを試すことができます:

VBA

次のコードでカスタム関数を作成します。

_Function IsFormula(ByVal Ref As Range) As Variant
    If Ref.Cells.Count > 1 Then
        IsFormula = CVErr(xlErrNA)
    Else
        IsFormula = Ref.HasFormula
    End If
End Function
_

例:

列Aのセルに数式があるかどうかを確認するには:

  1. 列Aを強調表示します。
  2. 条件付き書式> 新しいルール> 書式を設定するセルを決定する数式を使用に移動します
  3. Ffを使用してください。式:=IsFormula(A1)

非VBA

  1. 押す F5 または CtrlG
  2. 特別をクリックします。
  3. を選択し、[〜#〜] ok [〜#〜]をクリックします。これにより、数式を含むワークシートのすべてのセルが強調表示されます。
  4. 使用するフォーマットを設定します。
    Or
    セルスタイル([ホーム]タブの下)に移動し、数式を含むセルに関連付けるスタイルを選択します。ルックアンドフィールを変更するには、選択したスタイルを右クリックして、[変更]をクリックします。このスタイルが指定されたすべてのセルは自動的に更新されます。
4
Ellesa

これを行う非常に簡単な方法があり、Excel 2016でテストされています。

これを適用する範囲を強調表示します。たとえば、_A3:W20_からみましょう。条件付き書式に移動し、_NEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT_を選択します。

=isformula(A3)を入力し、適用する形式を選択します。

_A3_は明らかに範囲内の最初のセルへの参照ですが、この書式設定はすべてに適用されます。その結果、範囲内では、数式であるすべてのセルが条件付きでフォーマットされます。

4
Joe Dog

新しいヘルプサイトでは、ユーザー定義関数を推奨しています。

Function IsFormula(cell) as boolean 
  IsFormula = cell.HasFormula
End Function

次に、その関数を条件として使用します

そして実際、Excel 2013以降にはIsFormulaが標準関数として含まれています。

1
Carl Witthoft