• 締切済み

EXCELのデータ修正時に、その部分だけ文字色を変える

ご享受お願いいたします。 すでにデータが入力してあるファイル(行・列複数)において、任意のセルのデータを上書きで変えようとしています。 既存の書式は文字色=黒ですが、今から上書きするセルは入力・確定する毎に、「文字色=赤」にすることは可能でしょうか。つまり、入力終了後にはどこのセルを書き換えたか、わかるようにしたいのです。 ちなみに空き列に「データ修正を示す区分」などを入れ、条件付書式を利用する・・・などの方法は使わないとした場合です。私の知識では思いつきませんでした。 よろしくお願いいたします。

みんなの回答

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

・下記方法を思いついたのですが、使えますでしょうか。 ・変更をチェックする列(行)が少数なら、それらの列を 使わない列(行)へ複写します。 ・そして複写元のセルと複写先のセル間に書式-条件つきの書式を設定します。 (1)コピー元の最上行(左列)のセルに書式-条件つきの書式-セルの値が-次の値に等しくない-コピー先のセルを指定する。右のボックスでセルの絶対番地を相対番地に直す(注1)-書式-(書式を設定する)-OK (2)上記セルをコピーし、コピー元の以下の行(列)のデータ部を全部範囲指定して、形式を選択して複写-書式で書式を複写する。コピー元の値を変えると、文字色が赤(例)になります。 (注1)ここがポイント。むしろコピー先の相対番地($の付いてない番地)をキーボードから入力すると良い。ここを相対番地にしておかないと、後でやる書式の複写が実効性がなくなる。

aiai40
質問者

お礼

なるほど!こういうアイディアもありましたね! VBAを使用しないと解決方法はないかと思っていました。 今回は2000件ほどのデータを扱うのですが、ご提案の方法も可能だと思います。 ありがとうございました。 今回は皆さんの柔軟な思考力を改めて学びました。 ありがとうございました。

回答No.4

こんばんわ。初めまして。VBAですが、サンプルマクロを組んでみました。この方法は、ブックが開いていればそのブックに含まれているシートに瞬時に動作します。以下のように操作して下さい。 1.データの入っているブックを立ち上げ、ALT+F11キーを押してVBE画面を表示させ、画面左上のVBAProjectと書かれている上にマウスポインターを合わせて右クリック後、挿入→クラスモジュールを順にクリックし、表示された右側の白い部分に下記のコードをコピー&ペーストする。 Public WithEvents App As Application Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range) Target.Font.ColorIndex = 3 End Sub 2.次に画面左上のVBAProjectと書かれている下のThisWorkbookをダブルクリックし、表示された右側の白い部分に下記のコードをコピー&ペーストする。 Dim myClass As New Class1 Private Sub Workbook_Open() Set myClass.App = Application End Sub 3.保存してブックを終了し、再度立ち上げる。 データを変更してみて下さい。変更されたデータが赤色で表示されると思います。 ご不明な点・不具合等がありましたら、ご遠慮なくお知らせ下さい。

aiai40
質問者

お礼

作っていただいたマクロを見ると、とてもあっさりしていますが、作業効果は大ですね。 これをきっかけに、もっと勉強しようと思います。 細かいご指導ありがとうございました。

  • mixjuice
  • ベストアンサー率14% (8/54)
回答No.3

こんばんは >つまり、入力終了後にはどこのセルを書き換えたか、わかるようにしたいのです。 =であれば、色が変わらなくてもいいのかなと思いましたが 以下のようなのはどうでしょう。 「ツール」から「変更履歴の記録」→「変更履歴の確認」で「編集中に変更箇所を記録する」としておけば、変更箇所に「コメントがあるよ」という左上に青色の三角が出ます。そこをポイントするとコメントで「○○から○○にかわりましたよ」と出ます。 これはネットワークでブックの共有のときに使いますが、個人でやっても表示されますので試しにやってみてください。

aiai40
質問者

お礼

やってみました。 こんなふうに使うんですね!。知りませんでした。 他のデータ管理にも使いたいと思います。 とても参考になりました。 ありがとうございました。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

あ、以下の例は、セルの色が変わっちゃいます。 文字の色は、こうです。 Target.Font.ColorIndex = 3

aiai40
質問者

お礼

VBA、本格的に勉強してみようかな。 ありがとうございました。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

Private Sub Worksheet_Change(ByVal Target As Range) Target.Interior.ColorIndex = 3 End Sub 以上のようなVBAを使用してみては、どうでしょうか?

aiai40
質問者

お礼

やはりVBAを使いこなせると、EXCELを更に効率的に使えるんですね。 参考になりました。 ご回答、ありがとうございました。

関連するQ&A