セルに数式が含まれている場合、セルを条件付きでフォーマットすることはできますか(セルを更新するときに自分や他のユーザーに警告するため)。
XLMと範囲名を使用して、条件付き書式を使用してこれを行うことができます
XLMを範囲名と条件付き書式で使用して、セルの内容に従ってスプレッドシートを自動的に書式設定する
リンクされた記事を理解するのが非常に難しいことがわかったので、brettdjの答えに基づいて構築しました。
=ISFORMULA(INDIRECT("rc",FALSE))
$1:$1048576
_を使用します。それ以外の場合は、任意の範囲を入力できます。式INDIRECT("rc",FALSE)
は、現在のセルの参照を返します。これをシートで使用する場合は、ThisCell
のような定義名を作成し、それを数式で使用します。何年も後に戻ってきて、「これは一体何のためにあるのか?」 。
これらを試すことができます:
次のコードでカスタム関数を作成します。
_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のセルに数式があるかどうかを確認するには:
=IsFormula(A1)
これを行う非常に簡単な方法があり、Excel 2016でテストされています。
これを適用する範囲を強調表示します。たとえば、_A3:W20
_からみましょう。条件付き書式に移動し、_NEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT
_を選択します。
=isformula(A3)
を入力し、適用する形式を選択します。
_A3
_は明らかに範囲内の最初のセルへの参照ですが、この書式設定はすべてに適用されます。その結果、範囲内では、数式であるすべてのセルが条件付きでフォーマットされます。
新しいヘルプサイトでは、ユーザー定義関数を推奨しています。
Function IsFormula(cell) as boolean
IsFormula = cell.HasFormula
End Function
次に、その関数を条件として使用します
そして実際、Excel 2013以降にはIsFormula
が標準関数として含まれています。