• ベストアンサー

Excelで手入力したセルにのみ色をつけたい

Excelで、数式(関数)を使って値が"A"、"B"、"C"になる表があります。この表に手動で強制的に別の"A"、"B"、"C"に書き換えたセルが合ったとき、この強制的に書き換えたセルを背景色を変えるなどして一目でわかるようにしたいのです。 セルの値としては、数式(関数)で求められた"A"と手入力された"A"は同じように文字になるとおもうのですが、これを区別して、条件付き書式などで反映させる方法はあるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1606/2443)
回答No.1

条件付書式の数式を使用して(A1からが対象範囲の場合) =ISFORMULA(A1)=FALSE として設定してください。

ryou4649
質問者

お礼

まさしくこれです。 一発で解決できました。 ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

(A)1つのセルには、1つの関数しか設定出来ない。 数式で結果が{A」になっていても、その関数式の存非を「ISFORMULA」関数で判定できないと思う。 従って、条件付き書式の「関数で・・」は使えないのでは。 (B)したがってVBAで判定するにしても、関数式を設定しているはずのセル範囲に限って、手入力などで、値である「A」(=数や文字列)を入力すると 数式がなくなって、値だけのセルになるから、そこを捉えて、VBAで検出することはできる。 セル範囲を一括して判定はできないので、その範囲のセル1つづつ判定します。 標準モジュールに Sub test01() Set myrng = Range("B1:B5") For Each cl In myrng If cl.HasFormula = True Then MsgBox cl.Address & "関数があります" Else MsgBox cl.Address & "値のみです" cl.Interior.ColorIndex = 8 End If Next End Sub 例 B1:B5 スペース A =ISFORMULA(B2) B だと B3のみ色が着かない。 セルに入力したイベントを捉える方法を使っていませんが、 どちらがよいかは、使い道によるでしょう。 === 質問者は質問のように発想したのでしょうが、普通は 「数式を壊されたくない、数式が入力されたセルのみロック(保護)するには」 https://hamachan.info/win10-excel-lock/ のような発想をするにではないですかね。

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.2

VBAの標準モジュールじゃないSheet1とかにコピペしてください。 Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range For Each rng In Target If Not rng.HasFormula Then Select Case rng Case "A" rng.Interior.ColorIndex = 3 Case "B" rng.Interior.ColorIndex = 3 Case "C" rng.Interior.ColorIndex = 3 End Select End If Next rng End Sub

関連するQ&A

  • エクセルでセルの位置情報を返す数式を教えてください

    エクセルでセルの位置情報を返す数式を教えてください。 エクセルでセルの位置情報を返す数式を教えてください。 たとえば以下のような表がある場合、Offset関数でC4の値を 出したい場合は、offset(A1,3,2,1,1)となります。 しかし、A1のリストの位置が不明のためこの位置を反映することのできる 数式を教えていただけると助かります。 よろしくお願い致します。 A B C 1 リスト 2 あ 10 20 3 い 30 40 4 う 50 60

  • 【エクセル】条件によって数式を削除する

    エクセルで以下のようなことは実現可能でしょうか? たとえば ・A1の値が「a」のときはC1にはB1を検索値としたルックアップの値を返す。 ・A1の値が「b」のときはC1はルックアップを使用せず直接値を入力させる。 つまり、A1の値によって、C1セルの数式を削除し、完全に空白にするということです。 「IF」関数等ではC1セルを空白にできても数式は残ってしまうため、実現することはできません。 わかりやすく言えば、「条件付書式」では条件によってセルの文字色や背景色を変更することしかできないと思いますが、それをセルの値も含めて変更するような感じです。 方法がお分かりの方、お教えください。

  • エクセルで、あるセルに入力されたらこのセルを参照する…

    B1セルに値が入力されたら、A1セルがC1セル(データ入力済)の値を参照する、 ような数式を教えてください. またこのような数式がたくさんあるサイトでオススメを教えてください.

  • エクセルVBAで設定したセルの値

    エクセルVBAについての質問です。 例えば、A1とB1のセルの値を参照している数式がC1セルに設定してあるとします。 さらに、D1のセルにはC1の値を参照している数式が設定してあるとします。 VBAでA1、B1のセルの値を変更したとします。 次のステップのVBAでC1、D1のセルを参照すれば、A1、B1の変更が反映された後の正しい値である C1、D1の値が取得できるのでしょうか? できて当たり前だと思うのですが、セルに設定してある数式が大変複雑であったりすると、ちゃんとA1、B1の変更が反映された正しいC1、D1セルの値がVBAで取得できるのかちょっと不安です。 ばかな質問かもしれませんが、回答をよろしくお願い致します。

  • エクセルで表の条件によってセルを着色する方法

    こんにちは。 エクセルについて質問です。 添付してあります画像のような表があると仮定します。 A~Cの行に対応する数字が3つずつ入っている表です。 私がやりたいのは、この各項目の行に対応する3つの数字が、 どれか一つでもある値以上(以下)となるセルがある場合、 A、B、Cのセルの背景の色を変えたいのです。 たとえば、例の表を用いると、 A、B、Cの各項目について、対応する数値のセルに 30以上の値が入っているセルがひとつでもある項目では項目のセルに色がつくといった形です。 つまり、例の表では、AとBがかかれているセルの背景が着色されます。 条件付き書式では、数値そのもののセルにしか着色できないと思うのですが、 やりかたが分かる方がいらっしゃいましたら、ご教授ください。 よろしくお願いします。

  • Excelセル関数入力

    セルC2の合計がF1の数値と同じになるようにセルB4に数式を入力したいのですが。D列が数式となります。尚、F1の値は都度手入力で変更されます。数式を何度か入れたのですが数値がちぐはぐになりうまくいきません。B4に入力する関数もしくは何か良い方法はないでしょうかよろしくお願いします。

  • エクセルで複数の条件でセルの色を変える方法

    エクセルで、ある条件+ある条件、2つ合わさった時にこの色になる。 というような表を作りたいと思っています。 A1に何らかの文字が入力されていて、尚且つ、B1がりんごだった時、 C1が赤色になる。 (A1に入力されるものはランダムです) また、B1にバナナと入力したら、C1が黄色になる。 と、ある条件+もう一つの条件で、セルの色が変わるようにしたいのです。 以前こちらで検索をし、条件付書式で、 A1が空白以外だった場合にセルの色が変わる数式を見たのですが、 忘れてしまい探したけど見つけられませんでした。。 (その時発見した数式に、+で違う数式をくっつけ、その時は上記のような表を作る事ができました。) その時見たのは、ISBLANKや=B1<>""のようなものではありませんでした。。 その時と同じでなくて良いので、条件付書式で上記のような表を作る方法を教えてください。

  • エクセルでセルに入力した値によって指定したセルに○をつけたいのですが・・・

    エクセルで、例えばあるセルに Aと入力した場合、 別の【表】のAの列のセルに ------------ |A|○| ------------ |B| | ------------ |C| | ------------ Bと入力した場合は、 Bの列の場所に ------------ |A| | ------------ |B|○| ------------ |C| | ------------ というような感じで○を自動で反映させたいのですが、 どういった関数を入力させればよろしいでしょうか? 分かる方は教えていただけますでしょうか?

  • Excel2010 セル色の変更について

    エクセルの条件付き書式で表の色付けをしていますが 参照先のセルをデリートした時に書式の色が消えなくて困っています 表の構成としては項目(B・C列)は2行で 本日の日付をC3セルに「 =today() 」で表示させ 6行目にあるA・B・C・Dのアルファベットは その項目に対してしなければいけない予定の事象を書き 各項目のD・E・F・G列には 項目内上列に予定事象の期限を自動入力(関数入力済)し 項目内下列は事象実施日を手動で入力するようにしてあります 事象予定日の日付がC3セルと同じ日(当日)になれば事象予定日のセルを赤塗 C3セルの前日であれば黄塗、3日前であれば緑塗で事象予定日のセルが表示され 事象実施日がC3の日付より1日以上前であれば事象実施日を灰塗で表示させています ここまでが現状で、ここからがうまくいきません やりたい事としては 実施日が入力されたら予定日のセルの色も実施日のセルと同様に灰塗にし 実施日が未入力状態であるときは予定日のセル色に対しての変更はかけたくないのですが 実施日に日付を入力をすると予定日のセルも灰色にはなるものの 一度入力された実施日のセルをデリートしても予定日のセルが灰塗のままで戻りません。 予定日のセルに設定した条件付き書式は ・「数式を使用して~」→「次の数式を~」に「=$○$8=""」 書式に白塗 ・「指定の値を含む~」→「次のセルのみを~」に「セルの値」「次の値に等しい」「=$C$3+3」書式緑塗 ・「指定の値を含む~」→「次のセルのみを~」に「セルの値」「次の値に等しい」「=$C$3+1」書式黄塗 ・「指定の値を含む~」→「次のセルのみを~」に「セルの値」「次の値以下」「=$C$3」書式赤塗 ・「数式を使用して~」→「次の数式を満たす場合に~」に「=$○$8<$C$3」→書式灰塗  ※○の中には相関列文字を入力 この一通りの設定を、項目の上行と下行に対して参照関係になるようにセル位置の指定は変更してあります (E列の数式にはEを、F列の数式にはFを という具合です) これ以上何かを設定しなければいけないのか、どこかの設定が間違っているのか、VBAじゃないとできないのか・・・ どなたかご教授願います。説明の過不足等ありましたらご指摘ください。

  • Excelの関数についての質問です。

    Excelの関数についての質問です。 表1のセルA2の値に対し、セルB2の値の結果をセルC2に返す関数式を教えてください。 なお、表1は表2を反映した値となります(画像添付あり) 初心者です。宜しくお願い致します。

専門家に質問してみよう