• ベストアンサー

エクセル

エクセルのa2のセルに、外部のソフトから数値が足されていくのですが足されていく数値がエクセル内のみでで分かるような方法はないでしょうか? 例)75→150→175→225 75.25.50と増えた数値が知りたい a2のセルには関数は入っていません。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1734/2604)
回答No.2

たとえばですが、外部のソフトから数値が足されたときにchangeイベントが発生しているようでしたら、該当のシートのシートモジュールに以下のどれかでとりあえず対応できます。 手動でA2に数値を入力して試してみてください。 その1)VBAでA3に前回値を残しておいて足されたときに計算結果をC列の2行目から順に記載していきます。 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False Dim LastRow As Long If Target.Address = Range("A2").Address Then LastRow = Cells(Rows.Count, "C").End(xlUp).Row + 1 Cells(LastRow, "C").Value = Range("A2").Value - Range("A3").Value Range("A3").Value = Range("A2").Value End If Application.EnableEvents = True End Sub その2)VBAでA3に前回値を残しておいて足されたときに計算結果を毎回C2に上書きで記載していきます。 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = Range("A2").Address Then Range("C2").Value = Range("A2").Value - Range("A3").Value Range("A3").Value = Range("A2").Value End If Application.EnableEvents = True End Sub その3)VBAでB2から前回値を2行目から順に残していき、計算結果をC列の2行目から順に記載していきます。 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False Dim LastRow As Long If Target.Address = Range("A2").Address Then LastRow = Cells(Rows.Count, "C").End(xlUp).Row + 1 Cells(LastRow, "C").Value = Range("A2").Value - Cells(LastRow - 1, "B").Value Cells(LastRow, "B").Value = Range("A2").Value End If Application.EnableEvents = True End Sub

kubotaman
質問者

お礼

解決できました、ありがとうございました。

その他の回答 (1)

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

外部のソフトによりますが、エクセルの数式の計算方法の設定で手動にしてみてください。

関連するQ&A

専門家に質問してみよう