• ベストアンサー

エクセルにてセルへ数値を入力時、事前に入力していた値との差を別のセルに表示させたいです。

エクセルにてA1のセルに数値を入力した場合(事前に入力していた値-入力値)の差を隣のセル(B1)に表示し、再びA1に入力した数値の差をそのまた隣のセル(C1)に表示、再びA1に入力した数値の差をそのまた隣のセル(D1)に表示、再び… と繰返し入力した数値の差を右列へ順番に表示させていきたいのですが、どなたか方法を教えて下さい。 又、入力した時点の日付けも、差を表示させた下のセルに表示させる方法もお願いします。

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

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

たとえばA20を作業セルとして利用するとして Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Cells(1, Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column + 1).Value = Range("A1").Value - Range("A20").Value Cells(1, Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column).Offset(1, 0).Value = Date Range("A20").Value = Range("A1").Value End If End Sub でいかがでしょう

tetsushi22
質問者

お礼

思った通りに動作しました! とても助かりました。ありがとうございました。

その他の回答 (4)

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

関数で出来ると思って居るなら、エクセル関数の理解不十分です。 VBAそれもイベントプロシャーの考えがわかって無いと出来ません。VBAの経験ありますか。 この要求(仕組み)そのものが、エクセルではキワモノ的発想です。 エクセルでは入力するデータは別セルに順次入れるのが鉄則です。 初心者は特に。 私も#4さんと同じ考えです。 ーー VBAなら#2さんのコードの一部を Cells(1, Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column + 1).Value = Range("A1").Value - Range("A20").Value を差の考えによっては、ABS(絶対値)にするとか(質問者がマイナス順序を指定しているので#2のご回答が正しいのでしょう) Application.EnableEvents=False と Application.EnableEvents=True を最初と最後の次と前に入れます。 入れなくても、この質問の場合は、変化するのはA1セル以外なのでそのままでもよいのですが。

回答No.4

どうして、こういう要望が出るのか理解に苦しみます。 入力ミスがあったらどうするのか?たとえば「40」と入力すべきところを間違えて「41」と入力した場合にどうするのか? そもそも、比較元のデータがなければ入力ミスしたかどうかさえ確認できません。そのような不確実なデータにどれだけ意味があるのでしょう? 仕事としては、最低限、入力ミスしたかどうの確認ができる状態にしておくべきではないでしょうか。

回答No.3

よくわかってないんだけど・・・、 少なくともVBAを使わないと処理できないと思うよ。 とりあえずこんな感じになるのかな? 表示は表示形式で設定する形で。 Dim 前数字 As Integer Private Sub Worksheet_Change(ByVal Target As Range) Dim x As Integer x = 2 If Target.Column = 1 And Target.Row = 1 Then Do While Cells(1, x).Value <> "" x = x + 1 Loop Cells(1, x).Value = 前数字 - Cells(1, 1).Value Cells(2, x).Value = Date 前数字 = Cells(1, 1).Value End If End Sub

tetsushi22
質問者

補足

回答ありがとうございますw コードの表示にコピーしてやってみたのですがA1に入力した数字に -が付いてB1…に表示されていきます。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

A1の次にA2にデータをいれてその差をB2へ…以下そのまま下へと続いていく といった動作では駄目なんですか

tetsushi22
質問者

補足

さっそく回答ありがとうございます! A1の下へは同じように入力する数値用のセルにしていきたいので、 A1へ入力したデータだけで動作させたいです。

関連するQ&A

  • excelのセルに入力した数値

    excelのセルに入力した数値を計算させたいのですが何かいい方法は知りませんか? 例えば、A1のセルに1という数字を入力します。またそのA1のセルに今度は2という数字を入力したときにA1のセルの値が3になるようにしたいのです。簡単に言えば前に入力してある数値を記憶させておいて次に入力した数値をどんどん足していくようにしたいのです。

  • エクセル2000:決まったセルに数値が入力されたらマクロを起動させたい

    エクセル2000:決まったセルに数値が入力されたらマクロを起動させたい。 たとえばセルA1に、1以上の数値が入力されたときに、セルA2に今日の日付を入力させる マクロの記述はどうすれば宜しいでしょうか? 以下の記述で、セルA2に日付は入力させられるのですが、 セルA1に1以上の数値が入力された場合に起動させる方法が分かりません。 Range("A2").Select SendKeys "^(;){ENTER}" ご教授の程、宜しくお願い申し上げます。

  • 数値入力したセルに別のセルの値との積の表示

    2つのセルの値の積を、また別のセルに表示するのではなく、 入力したセルに、そのまま返すよう表示させたいのですが、 セルを3つ使う方法しか分かりません。 たとえば、 A6に「5」、D6が空欄 の時、D6に「1000」と入力した場合、 A6の「5」との積、「5000」が D6に返されるようにしたいのですが、 ご教授宜しくお願いいたします。

  • エクセルでセルの値結合で日付表示

    初歩的な質問ですがお願いします。 エクセルで下記のように値が入力されています。 A1  B1  C1  D1  S  45   3  15   このセルの値を結合して別のセルに(例えばE1)にS45.3.15(日付表示)と表示させていのですが・・・ セルの値の結合ができれば、表示方法とかはわかります。 よろしくお願いいたします。

  • セルに番地入力すると表示が・・・・   エクセル 

    エクセルで名簿作成しているのですが、番地入力したセルが 勝手に年号日付で 表示されてしまいます。 例えば、(A1セル)市町村を入力     (A2セル)番地を入力  ○○○○-○ すると ○○/○/○の様に           日付表示されるので 困ってます。 いろいろ 表示方法を変えてみたのですが どれもダメでした。 なにか良い方法はないでしょうか? よろしくお願いします。                                             

  • Excelのセルの値が正しく表示されません

    Excelで関数式を入ました SUMで 69 68 76 85 0 55 82 24 15 22 87 ↑をたすのですが、 合計が583になるところ、ドラッグして表示を見ると583になっているのですが 623と表示されます。 セルの書式設定は『数値』となっており、隣のセルは正しい数値が返されます。 どうすればいいでしょうか? WindowsXP Excel2007です 宜しくお願いします。

  • エクセルのセル入力に関して

    初めて投稿させて頂きます。 ご回答していただける方、よろしくお願いいたします。 エクセルのセルに数値を入力し、一度確定した後に もう一度同じセルに数値を入力した場合に 前回の数値を引き継いで加算を行うことは可能ですか? 例: セルA1に、数値5を入力。 その後、セルA1に7を入力し確定すると12と表示する方法 ご存知の方がいらっしゃいましたらご教授願います。

  • セルの元値を別セルに貼付け後、新たに値を入力

    ExcelでA1セルに新たに値を入力したときC1セルにA1セルの元の値が貼付けられる。 都度、A1セルに値を入力するたびにC1セルの値も変更されるようにしたいのですが どなたかよろしくお願いします。

  • エクセルのNOW()の返した値を数値データに変換

    エクセルのNOW()の返した値を数値データに変換 セルのA1に =NOW()といれてあります。 セルの書式設定→表示形式→日付→種類でいろいろな表示ができます。 このA1のセルをコピーしてB1に形式を選択して貼り付け→値 で貼り付けます。 同じくセルの書式設定→表示形式→日付→種類でいろいろな表示ができます。 この貼り付けたB1のセルには 2010/8/26 12:48:10 となっています。 このセルの値を100826124810と変換してしまうには B1にどういう式を入れるとできますか? A1の値の変化と連動でB1も変化させたいです。 お願いします。

  • ある特定の、数値が入力された日付を常時表示

    エクセルのセル(A)に、特定の数値が入力されたら、セル(B)にその入力日の日付けを、常時表示することの出来る関数を教えて下さい。

専門家に質問してみよう