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

このQ&Aに関連する最新のQ&A

VBA 学習」に関するQ&A: VBAの学習について

A 回答 (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
    • good
    • 0

一番簡単な方法は、


1.セルA1を『コピー』し、セルB1に『形式を選択して貼付け』(値)を実行
2.セルA1で(Delete)キーを押す
3.セルA2の内容を『=A1+B1』に変更
4.セルA1に新しいA1を入力

ちなみに、1~2をVBAに登録して、マクロボタンを作成すれば、作業頻度が多くても対応可能です。

御質問の内容通りに、A1の内容が変更された場合に自動的にA2の数値を計算することも可能です。イベントプロシージャーを作成することとなり、VBAの学習を進めないと難しいと思います。
    • good
    • 0

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


このカテゴリの人気Q&Aランキング