• 締切済み

【Excel】セルの値が変更されたら、セルの色を変えたい

Excel2003を使用しております。 あるフィールドにある値が変更されたら そのフィールドのセルの色をピンク色に変更したいのですが… お分かりになる方がいらっしゃいましたら。教えて頂けますでしょうか。 変更後の色はピンクです。(ColorIndex = 38) 以上、宜しくお願い致します。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.6

多分、結論からいうと >・セルの値を変更したが元の値に戻した場合 (セルの色なしにすることと思いますが) が無理でしょう。 理由は、元の値がなんであったのかを記録できないからです。 もし、元の値が1とかの固定された値であれば判別も可能ですが。 >・空白セルに値を入力したが、削除した場合 これは、何らかの値を入力済みのセルを空白にしたらということだと思いますが こちらは可能ですね。 >・セルの値が変更された場合 >・空白セルに値が入力された場合 こればChangeイベントが実行してくれます。Changeイベントはセルの値が変更(空白に変更も含む)された場合に記述の内容を実行してくれます。 以下は、VBAの勉強とでも思ってください。 If Target.Column > 5 Then'列番号が6列目(F列)以降で If Target.Column < 23 Then'列番号が22列目(V列)以前で If Target.Row > 12 Then'行番号が13行目以下で If Target.Row < 300 Then'行番号が299行目以上で If Target.Value "" Then'値が空白だったら Target.Interior.ColorIndex = 0 Else'値が空白以外だったら Target.Interior.ColorIndex = 38 End If End If End If End If End If といった感じです。 シートの一部が変更されたか、元のシートと同じ値なのかの判断であれば シートをコピィして、同じ内容のシートを2枚準備しておいて 条件付書式で、片方のシートのF13 ~ V299に 数式で =Sheet1!F13<>Sheet2!F13 といれて、パターンにピンク色 を設定しておけば Sheet1とSheet2の値が違えば色がつき、同じ値にすれば色が消えると思います。

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

エクセルではフィールドといわないで普通シートにおいて標準の、フィールド名を行方向に流す使い方の場合は、列という。 ColorIndex = 38とColorIndex を知っているなら、VBAの経験はありそうだが、なぜこういう質問が出るのかな。 イベントの部分はマクロの記録は取れないが、>「ピンク色に変更したいのですが」の部分はマクロの記録で、コードがすぐ判る。 ついでにワークシートのセルのChangeイベントのことを知らないのかな。VBAとそのコントロールを使い出したら、重要な概念なので勉強してませんか。 >フィールドのセルの色 そのセルのある同列の全セルのようにも意味を取れるが、そのセルだけでよいのでしょう? >にある値が これもA->Bと変更されたとして、Aの値は限られたときだけ、とも取れる。そうではなく、「変更されたら」でよいのでしょう。 ーーー この程度なら条件付き書式で出来る場合が有るかもしれない。 有るセルの値A->Bと変化したとき、単純に変化しさえすれば、色を変えるというのはVBAでないと出来ないのでは。 特定のBの場合色を変えるというのは条件付き書式で出来る。 だから質問の内容によると思う。

super-user
質問者

補足

>imogasiさん 説明不足ですみません。 ・セルの値が変更された場合 ・空白セルに値が入力された場合 上記の場合にセルに色づけをしたいと考えております。 それ以外の場合は、色無し(デフォルト)になって欲しいです。 #具体的な範囲はF13 ~ V299でこのセルに対して設定したいです。 VBAは初心者ですが、Webで調べてChangeイベントで 出来そうな気がしたのですが、いかんせんコードが判らず 質問させて頂いた次第です。 以上、宜しくお願い致します。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.4

・空白セルをダブルクリックして編集モードにしたけど、何も入力しないでリターン(エンター)キーを押した。 ・何かが入力されているセルをダブルクリックして編集モードにしたけど、何も変更しないでリターン(エンター)キーを押した。 ・何かが入力されていたセルの内容を削除して、空白セルにした。 これらの場合に、「値が変更された」ことにしたいかどうかで、方法は変わると思います。

super-user
質問者

お礼

>nattocurryさん ありがとうございます。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

VBA使用することになります。 設定したいシートのシート名のタブを右クリック コードの表示をクリックすると VBエディター起動しますので Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Target.Interior.ColorIndex = 38 End If End Sub のコードをコピィして、閉じます。 上記では Target.Column = 1 ですので A列のセルが変更されたら セルの色をピンク にしています。

super-user
質問者

補足

>hallo-2007さん 具体的にありがとうございました。 A列で色が変わることを確認できました。 ちなみに… ピンク色にしたい ・セルの値が変更された場合 ・空白セルに値が入力された場合 元の色のままにしたい(デフォルト) ・セルの値を変更したが元の値に戻した場合 ・空白セルに値を入力したが、削除した場合 具体的なセルの範囲はF13 ~ V299でこのセルに対して設定したいです。 上記のような設定は可能でありますでしょうか 以上、宜しくお願い致します。

回答No.2

「条件付書式」で良いかと思います。 特定の値、以上以下等の条件、あるいは数式で指定する条件などによってセルに色を付けたり枠で囲んだりできる機能です。

super-user
質問者

お礼

>piro19820122さん 質問が悪かったようです…。 条件付書式では色々と試させて頂きました。 早速のご回等ありがとうございました。

  • choco_jiji
  • ベストアンサー率31% (528/1701)
回答No.1

条件付書式設定でできると思います。 特定の数値に等しい、とか等しくないとか、さらに複雑な式で設定する事もできます。 やり方は変えたいセルを選んだ状態で、「ツールバー」→「書式」→「条件付書式設定」です。

super-user
質問者

お礼

>choco_jijiさん 質問が悪かったようで、条件付書式では色々と試させて 頂きました。 早速のご回等ありがとうございました。

関連するQ&A

  • 【Excel】色が付いているセルの値をクリアしたい

    Excel2003を使用しています。 『D8:J40の範囲で色が付いているセルの値をクリアする』というマクロを作りたいのですが、“セルに色がついていたら…”という条件をどのように書いたらいいのかがわからず、つまづいています。 参考までにコードを書いていただけると助かります。よろしくお願いします。

  • 【Excel】内容を変更したセルに色をつけたい

    Excel2003を使用しています。 数式を入力している列で、端数処理をするために、元々入力されている数式に手を加えることがあるのですが、内容を変更をしたセルがわかるように、数式を変更したら、自動でセルに色がつくように設定することはできますか? セルに色をつけるということではなくても、フォントの色を変えるとか、変更したセルがひと目でわかるようにしたいのですが。。。 よろしくお願いします。

  • 他のセルの値で、背景の色を変えたい

    Excel2003を使っています。 例えば、 ・A1セルの値が"apple"に変更されたら、A2セルの背景の色が赤になる ・A1セルの値が"apple"以外に変更されたら、A2セルの背景の色が白になる ような設定は可能でしょうか? 自分自身の値により、自分の背景の色を変えるのは、条件付き書式でできるのですが、他のセルの値により変化させる方法が分かりません。 ご存じの方がいらっしゃいましたら、教えてください。

  • VBA セルの色を変更する

    VBA(エクセル2007使用)で、セルの背景色を変更する場合についての質問です。 マクロを実行する度に、セルの背景色を変更するマクロを作成しました。 オレンジ→水色→緑→灰色→無色  という風に変わっていくところまでは できたのですが、これだとマクロを実行するのにセルの状態が無色か、指定した カラーコードで塗りつぶされていないと実行できません。 下記、コードの一番最初の Case で ”背景色がどんな色の場合でも”という条件に したいのですが、どのように記載したらわからずにいます。。。 ---------------------------- Sub 色チェンジ() n0 = ActiveCell.Interior.ColorIndex Select Case n0 Case xlNone   ’ここを”どんな色の場合でも、、、という条件にしたいです。。” Selection.Interior.ColorIndex = 40 Case 40 Selection.Interior.ColorIndex = 34 Case 34 Selection.Interior.ColorIndex = 35 Case 35 Selection.Interior.ColorIndex = 15 Case 15 Selection.Interior.ColorIndex = xlNone End Select End Sub -----------------------------------

  • EXCEL2003で、値によってセルの色を変えたい。その2

    先ほども質問をさせていただいたものです。 何度も同じような質問をしてしまって、申し訳ありません。 先ほどの質問の続きになるのですが、セルの値によって、別のセルの書式を変えることはできるのでしょうか?例えば、A1の値が0なら、A1からG1までのセルの色を全て赤くするとか。 自分でいろいろやってみたり、調べてみたんですけど、どうしてもわからなくて。 おわかりの方がいらっしゃいましたら、教えて下さい。 よろしくお願いしますm(__)m

  • 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じゃないとできないのか・・・ どなたかご教授願います。説明の過不足等ありましたらご指摘ください。

  • エクセルでセルをクリアされたら、自動的にセルの色を変更したい

    エクセルで、セルの値がDeleteキーなどでクリアされた場合に、 自動的にセルの色がかわるようにしたいのですが、 何かよい方法はないでしょうか? セルの内容が変更された場合のフォントの色を変えるために、 Private Sub Worksheet_Change(ByVal Target As Range) Target.Font.ColorIndex = 3 End Sub というマクロは設定しています。 これだとクリアされた場合、わからないので。。。 よろしくお願いします。

  • 【ExcelVBA】セルに入力された値によって書式を変更する

    こんにちは。いつもお世話になっております。 標題の件で質問させて下さい。 セルに入力された値によって塗りつぶす色を変えるマクロを作成しています。 条件付き書式では、条件を3つしか指定できなかったので、マクロにて制御しようと思いました。 値の判定を行い、入力した各文字列の色で塗りつぶされるところは正常に動作しているのですが、 値が入っていてもいなくても、複数のセルを選択し、「Delete」キーを押下すると、背景色がグレーになってしまうのです。 初歩的な質問で申し訳ありませんが、どなたか上記のような動作をする理由をご教授頂けないでしょうか。 以下にソースを載せておきます。 宜しくお願い致します。 --- Private Sub Worksheet_Change(ByVal target As Range) On Error Resume Next If (target.Cells.Value = "グレー") Then target.Cells.Interior.ColorIndex = 15 ElseIf (target.Cells.Value = "イエロー") Then target.Cells.Interior.ColorIndex = 6 ElseIf (target.Cells.Value = "スカイブルー") Then target.Cells.Interior.ColorIndex = 33 ElseIf (target.Cells.Value = "ピンク") Then target.Cells.Interior.ColorIndex = 7 Else target.Cells.Interior.ColorIndex = 0 End If End Sub

  • Excel2003のユーザー定義関数でセルに色をつけたい

    Excel2003のユーザー定義関数で、RGBの値を指定してセルに色をつけたいと考えています。 具体的には、 =CellColor(255,100,33) のように、RGBの値を引数にとり、そのセルに色をつけることは可能でしょうか? マクロを使えば可能ですが…。 また、同時にかなりの数の色を同じシートに出したいのですが、色の数に制限があるというのは本当でしょうか? そうだとすると、マクロで実現できたとしても不可能ですよね? 以上、よろしくお願いいたします。

  • セル内の数字を変更すると[塗りつぶし]の色が変わる

    Microsoft Excel 2010にて、セル内の数字を変更すると自動的に[塗りつぶし]の色を灰色にしたいのですが、何方かご存知の方おりましたら教えていただけないでしょうか。よろしくお願いいたします。

専門家に質問してみよう