回答:
XLMおよび範囲名を使用して、条件付き書式を使用してこれを行うことができます。
範囲の名前と条件付き書式設定でXLMを使用して、セルの内容に応じてスプレッドシートを自動的に書式設定するという長い記事があります。
xlm
マクロ警告なしで使用できましたが、MSFTはセキュリティアプローチを変更しました。
リンクされた記事を理解するのは非常に難しいと感じたため、brettdjの答えに基づいて作成しました。
=ISFORMULA(INDIRECT("rc",FALSE))
$1:$1048576
適用する範囲として。それ以外の場合は、任意の範囲を入力できます。数式INDIRECT("rc",FALSE)
は、現在のセルの参照を返します。シートでこれを使用する場合ThisCell
、数年後に戻って「これは何のためにあるのか?」
INDIRECT("rc",FALSE)
に、条件付き書式の「適用対象」範囲の左上のセルで相対参照を使用します。たとえば、「適用対象」の範囲がの=$A$3:$F$300
場合、を使用します=ISFORMULA(A3)
。この作品は、条件付き書式がサポートする相対参照ので、ご覧ください。この
これらを試すことができます:
次のコードを使用してカスタム関数を作成します。
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
標準機能があります。