• ベストアンサー

エクセルで・・・

エクセルのことなんですけどセルA1に1と置いて A2にオートSUM関数を使うとA2に1と出ますよね? それをA2の答えだけ固定してA1に2と置いた時 A2に最初にA1置いた数字1と新しくA1に置いた2 の合計が出るようには出来ませんか?

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

>A2に最初にA1置いた数字1と新しくA1に置いた2の合計が出るようには出来ませんか? この主旨は、A1に連続的に入力して、A2にそれまでの入力の合計を計算するため?でしょうか。 そう解釈して書いてみます。1回だけ実行すると質問どおりの結果です。 まず、同様の質問がありました。(ご参考に。補足で入力取消を意識しています)  『集計方法を教えてください!』http://www.okweb.ne.jp/kotaeru.php3?q=94207 今回は単純に考えてみました。 (1)どんどん加算するだけです。入力ミスは逆符号で入力取消しするか最初から再入力です。新しい計算の時はA2を消去します。 ツール→マクロ→Visual Basic Editor でVBE画面に移動し、表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示し、そこの、Sheet1をダブルクリックして、出てきたコードウインドウに下記マクロを貼り付けます。 ↓ Private Sub Worksheet_Change(ByVal Target As Range)   If Target.Address = "$A$1" Then '入力がA1だったら     Range("A2") = Val(Range("A2")) + Target.Value '加算   End If End Sub (2)Sheet2を作業用に使っています。入力ミスはSheet2で修正します。新しい計算の時はSheet2のA列を消去します。   また、Sheet1のA2は =SUM(Sheet2!A:A) とします。 貼り付け方は同じです。(1)、(2)は同一シートでは同時には使えません。 ↓ Private Sub Worksheet_Change(ByVal Target As Range)   If Target.Address = "$A$1" Then     'Sheet2のA列に連続的に書き込んでいく     Worksheets("Sheet2").Range("A65536").End(xlUp).Offset(1, 0) = Target.Value   End If End Sub

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yohsshi
  • ベストアンサー率55% (369/665)
回答No.1

一番簡単な方法は、 1.セルA1を『コピー』し、セルB1に『形式を選択して貼付け』(値)を実行 2.セルA1で(Delete)キーを押す 3.セルA2の内容を『=A1+B1』に変更 4.セルA1に新しいA1を入力 ちなみに、1~2をVBAに登録して、マクロボタンを作成すれば、作業頻度が多くても対応可能です。 御質問の内容通りに、A1の内容が変更された場合に自動的にA2の数値を計算することも可能です。イベントプロシージャーを作成することとなり、VBAの学習を進めないと難しいと思います。

すると、全ての回答が全文表示されます。

関連するQ&A