数式が含まれるセルを条件付きでフォーマットする


18

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


どのセルに数式が含まれているかを簡単に確認したい場合は、Ctrl-`(バックティック、英語キーボードの〜と同じキー)を入力して数式を表示できます。もう一度キーを押して切り替えます。
ヨーヨー

回答:


9

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

範囲の名前と条件付き書式設定でXLMを使用して、セルの内容に応じてスプレッドシートを自動的に書式設定するという長い記事があります。

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

申し訳ありませんが、今まであなたの答えをテストしていません。このトリックはシンプルで美しいです。受け入れました!ありがとう。(ところで、リンクが壊れています。)
ウィルソン

テスト済みで動作します!イタリア語版のExcel 2007の正しい定義を見つける必要がありました。イタリア語版のExcelを使用している場合は、= INFO.CELLA(48; INDIRETTO( "rc"; FALSO))を使用する必要があります(コンマの代わりにセミコロンも入力してください)
Kar.ma

悪い点は、マクロファイル(.xlsmなど)として保存する必要があることです。ファイルを開くと、マクロを有効にするまで色付けが表示されません。
Kar.ma

以前はxlmマクロ警告なしで使用できましたが、MSFTはセキュリティアプローチを変更しました。
brettdj

10

リンクされた記事を理解するのは非常に難しいと感じたため、brettdjの答えに基づいて作成しました。

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

数式INDIRECT("rc",FALSE)は、現在のセルの参照を返します。シートでこれを使用する場合ThisCell、数年後に戻って「これは何のためにあるのか?」


これはExcel 2013以降の正解です
。support.office.com/ en

1
を使用する代わりINDIRECT("rc",FALSE)に、条件付き書式の「適用対象」範囲の左上のセルで相対参照を使用します。たとえば、「適用対象」の範囲がの=$A$3:$F$300場合、を使用します=ISFORMULA(A3)。この作品は、条件付き書式がサポートする相対参照ので、ご覧ください。この
ミカリンドストローム

4

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

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またはCtrl+G
  2. Specialをクリックします。
  3. 数式を選択し、OKをクリックします。これにより、数式を含むワークシート内のすべてのセルが強調表示されます。
  4. 使用する形式を設定します。
    または、[ホーム]タブの下の[ セルスタイル ]に
    移動し、数式を含むセルに関連付けるスタイルを選択します。ルックアンドフィールを変更するには、選択したスタイルを右クリックし、[ 変更 ]をクリックします。このスタイルが指定されたすべてのセルは自動的に更新されます。

個人的にはVBAを使用することを好みませんが、この場合、数式をセルに入力するときにセルの書式を動的に変更できる(またはその逆)ため、VBAソリューションの方が優れています。ありがとう。
ウィルソン

4

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

これを適用したい範囲を強調表示しますA3:W20。条件付き書式設定に進み、を選択しますNEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT

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

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



1

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

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

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

実際、Excel 2013以降にはIsFormula標準機能があります。


-1

条件付き書式を使用することもできます。

  1. 条件付き書式を適用するセルの範囲を選択します
  2. ホーム->条件付き書式設定->新しいルール:数式を使用して、書式設定するセルを検出します
  3. この式が真の場合の値のフォーマット: =HasNoFormula
  4. 必要な形式を選択します

Excel 2010を使用してテストしました。


あなたの答えは不完全です。私はあなたがテストしたとは思わない。
ウィルソン

2
-1、これは何もしません。= HasNoFormulaとはどういうことですか?
トリアン14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.