プロが教える店舗&オフィスのセキュリティ対策術

エクセルで、表の数値を入れ替えた時、変更となった数値が自動的に
赤文字等になるようにできないでしょうか?
変更となった数値とは、入れ替えた数値とそれに関わる縦横等の計算箇所です。
WORDでは、修正箇所は赤文字等わかるようにできるみたいなのですが、
エクセルでできないものか・・・・
どなたか解る人がいたら、教えて下さい。

A 回答 (3件)

入力するシートの「シート名タブ右クリック」→「コードの表示」で開く画面に以下のマクロを貼り付けてください。

シート画面に戻り、値の入力を行うとフォントが「赤」になります。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
  For Each r In Target
    r.Font.ColorIndex = 3
  Next r
End Sub

それは簡単なんですが…、いつ文字を黒に戻します?
セーブしたら戻す? ブックを開いたときに戻す? それを考えないとシートが赤文字だらけになって、変更箇所が分からなくなりますよ。

とりあえずブックを開いたときに、文字色を「自動」に戻すマクロも書いておきます。以下のマクロはALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。(先のマクロと貼り付ける画面が異なりますのでご注意!)

なお「入力シート」の部分は実際のシート名に変更してください

Sub auto_open()
 Worksheets("入力シート").Cells.Font.ColorIndex = xlAutomatic
End Sub
    • good
    • 1
この回答へのお礼

zap35さん、ありがとうございました。「マクロ」って使った事なかったのですが、zap35さんの書かれたとおりやってみたら、入力した箇所は赤字で残りました。
で、もう1段階なのですが、表計算なので入力した値は同シートの縦横とか別シートにリンクされるようになっております。
入力した箇所のみならず、計算・リンクにより値が変わった箇所も赤字で残すことはできないでしょうか??

お礼日時:2008/02/18 13:38

sheet1のChangeイベントに


Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo err1
If Target.Dependents Is Nothing Then
Else
Target.Dependents.Select
Selection.Interior.ColorIndex = 6
End If
Exit Sub
err1:
End Sub
を入れる。
関連して変わったセルはセルを黄色で表示します。
#1回答と似てますが、ForEachを使わなくてもできそうで、使ってません。
他シートのデータを使っているとか、他シートで使っている場合はDependentsプロパティは捉えられないようです。
テストデータ例
A列ーG列
1-17行
ーー
A列
11
34
2
2ーー=A2+1
7
4ーーー=A5+3
ーー=A2+5
ーーーーー=A5+12
ー14
ー12
ーー=A5*2
ーーーーーー=F8+1




ーーーー=D4+1
上記例は2段参照まで。ーは横詰めを防ぐためで、空白セル。
    • good
    • 0

#01です。

手で変更したセルは「赤色」。そのセルを参照しているセルは「緑色」にするようにしてみます

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r, trg As Range
  On Error GoTo ext
  For Each r In Target
    r.Font.ColorIndex = 3 '赤色にする
    If Not r.Dependents Is Nothing Then
      For Each trg In r.Dependents
        trg.Font.ColorIndex = 4 '緑色にする
      Next trg
    End If
ext:
  Next r
End Sub
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています