• ベストアンサー

excelのセルに入力した数値

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

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

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

Sheet1のA1で質問の操作ができるようにしてみました。 入力したA1を消去するにはマクロを無効化(2行目の『'』をとる)する必要があります。 または、無効化するようなマクロを作ることも考えられます。 (A1に1000があって、0にするには-1000を入力します。) ツール→マクロ→Visual Basic Editor でVBE画面に移り、 表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示します。プロジェクトエクスプローラのSheet1をダブルクリック。出てきたコードウインドウに下記マクロをコピーして貼り付けます。 ここから ↓ Private Sub Worksheet_Change(ByVal Target As Range)   'マクロを無効にするには次の行の『'』を削除する   'Exit Sub   Dim A1_old As Double '前のA1   Dim A1_new As Double '新しいA1   'エラーが起きるような入力をしたら入力を取り消す   On Error GoTo ErrorHandler   If Target.Address = "$A$1" Then     'A1に入力したら入力した数値を記憶     A1_new = Target.Value     With Application       .EnableEvents = False       .Undo         'Undoして前の数値にする         A1_old = Range("A1")         '前の数値と入力した数値を加算する         Range("A1").Value = A1_old + A1_new       .EnableEvents = True     End With   End If   Exit Sub ErrorHandler:   'A1に文字を入力したりした時のエラー対応   '入力を取り消ししてしまう   With Application     .EnableEvents = False     .Undo     .EnableEvents = True   End With End Sub

ohamu
質問者

お礼

ありがとうございました。「マクロ」って初めて使うのでなんだかものすごく感激してしまいました。本当に助かりました。

その他の回答 (5)

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

●#5のnishi6さんの解答と基本は同じと思いますが、少し簡単に、下記を作って見ました。 ●入力セルの対象範囲をA1より20行×5列に限っています。 これは増やせば、(メモリーの許す限り)増やせます。 結果を可視的にするため、+5列右列の対応行に対応させて累積和をセルに表示しています。元のセルに累積和の結果を戻す(表示する)ことも可能です。 Cells(i, j + 5) --->Cells(i, j) ●Application.EnableEvents = Falseのステップは、セルの値を表示するとChangeイベントが起こり、無限ループになるのでこの処理の場合だけ起こらない(無効になる)ようにしています。2行下で元に戻しています。 ● Dim t(20, 5) Private Sub Worksheet_Change(ByVal Target As Range) i = Target.Row : j = Target.Column t(i, j) = t(i, j) + Target.Value Application.EnableEvents = False Cells(i, j + 5) = t(i, j) Application.EnableEvents = True End Sub

  • kennta111
  • ベストアンサー率7% (12/151)
回答No.4

 マクロはダメなんですか?

  • estima01
  • ベストアンサー率27% (43/155)
回答No.3

「形式を選択して貼り付け」-「演算」-「加算」を利用されますと ある程度近いことができます。 ただ実際に入力というのではなく「コピー」「貼り付け」の応用ですので 参考にして活用してみてください。

  • ADEMU
  • ベストアンサー率31% (726/2280)
回答No.2

別のカラムに表示させるのならともかく同じカラムに表示させるのはループしてしまうので無理だと思います。

  • Good-S15
  • ベストアンサー率33% (149/439)
回答No.1

こんばんは。 関係ないんでしょうが、何のために使用するのでしょうか? また、この仕様だとクリアする機能(ボタン)も付けないといつかセルがパンク?すると思います。

関連するQ&A

専門家に質問してみよう