- 締切済み
【Excel】セルの値が変更されたら、セルの色を変えたい
Excel2003を使用しております。 あるフィールドにある値が変更されたら そのフィールドのセルの色をピンク色に変更したいのですが… お分かりになる方がいらっしゃいましたら。教えて頂けますでしょうか。 変更後の色はピンクです。(ColorIndex = 38) 以上、宜しくお願い致します。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- hallo-2007
- ベストアンサー率41% (888/2115)
多分、結論からいうと >・セルの値を変更したが元の値に戻した場合 (セルの色なしにすることと思いますが) が無理でしょう。 理由は、元の値がなんであったのかを記録できないからです。 もし、元の値が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/17069)
エクセルではフィールドといわないで普通シートにおいて標準の、フィールド名を行方向に流す使い方の場合は、列という。 ColorIndex = 38とColorIndex を知っているなら、VBAの経験はありそうだが、なぜこういう質問が出るのかな。 イベントの部分はマクロの記録は取れないが、>「ピンク色に変更したいのですが」の部分はマクロの記録で、コードがすぐ判る。 ついでにワークシートのセルのChangeイベントのことを知らないのかな。VBAとそのコントロールを使い出したら、重要な概念なので勉強してませんか。 >フィールドのセルの色 そのセルのある同列の全セルのようにも意味を取れるが、そのセルだけでよいのでしょう? >にある値が これもA->Bと変更されたとして、Aの値は限られたときだけ、とも取れる。そうではなく、「変更されたら」でよいのでしょう。 ーーー この程度なら条件付き書式で出来る場合が有るかもしれない。 有るセルの値A->Bと変化したとき、単純に変化しさえすれば、色を変えるというのはVBAでないと出来ないのでは。 特定のBの場合色を変えるというのは条件付き書式で出来る。 だから質問の内容によると思う。
- nattocurry
- ベストアンサー率31% (587/1853)
・空白セルをダブルクリックして編集モードにしたけど、何も入力しないでリターン(エンター)キーを押した。 ・何かが入力されているセルをダブルクリックして編集モードにしたけど、何も変更しないでリターン(エンター)キーを押した。 ・何かが入力されていたセルの内容を削除して、空白セルにした。 これらの場合に、「値が変更された」ことにしたいかどうかで、方法は変わると思います。
お礼
>nattocurryさん ありがとうございます。
- hallo-2007
- ベストアンサー率41% (888/2115)
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列のセルが変更されたら セルの色をピンク にしています。
補足
>hallo-2007さん 具体的にありがとうございました。 A列で色が変わることを確認できました。 ちなみに… ピンク色にしたい ・セルの値が変更された場合 ・空白セルに値が入力された場合 元の色のままにしたい(デフォルト) ・セルの値を変更したが元の値に戻した場合 ・空白セルに値を入力したが、削除した場合 具体的なセルの範囲はF13 ~ V299でこのセルに対して設定したいです。 上記のような設定は可能でありますでしょうか 以上、宜しくお願い致します。
- piro19820122
- ベストアンサー率38% (256/672)
「条件付書式」で良いかと思います。 特定の値、以上以下等の条件、あるいは数式で指定する条件などによってセルに色を付けたり枠で囲んだりできる機能です。
お礼
>piro19820122さん 質問が悪かったようです…。 条件付書式では色々と試させて頂きました。 早速のご回等ありがとうございました。
- choco_jiji
- ベストアンサー率31% (528/1701)
条件付書式設定でできると思います。 特定の数値に等しい、とか等しくないとか、さらに複雑な式で設定する事もできます。 やり方は変えたいセルを選んだ状態で、「ツールバー」→「書式」→「条件付書式設定」です。
お礼
>choco_jijiさん 質問が悪かったようで、条件付書式では色々と試させて 頂きました。 早速のご回等ありがとうございました。
補足
>imogasiさん 説明不足ですみません。 ・セルの値が変更された場合 ・空白セルに値が入力された場合 上記の場合にセルに色づけをしたいと考えております。 それ以外の場合は、色無し(デフォルト)になって欲しいです。 #具体的な範囲はF13 ~ V299でこのセルに対して設定したいです。 VBAは初心者ですが、Webで調べてChangeイベントで 出来そうな気がしたのですが、いかんせんコードが判らず 質問させて頂いた次第です。 以上、宜しくお願い致します。