• ベストアンサー

excelのセルに入力した数値

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

  • ohamu
  • お礼率21% (11/52)

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

  • ベストアンサー
  • 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/17068)
回答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

  • エクセルで「2」などの入ったセルを数字として計算させる方法

    エクセルにおいて「2」などの入ったセルを数字として計算させる方法を教えてください いわゆる A B C 1 3 2 4 3 2 4「4」 5「2」 6 などの表で A6に =SUM(A1:A6) と入力すると9と表示されるのですが 「4」などカッコに囲まれた数字を計算できる数値させるようにする方法 これでしたら 15と出てくるようにするにはどうすればいいのでしょうか。 あの「4」など入ったセルの値およびタダの数値に変換せずに、あくまで「」の中に数字を入れた状態でできるようお願いします。 できますのでしょうか おしえてください ヨロシクお願いします。

  • エクセル:数値入力後、一致したセルの”塗りつぶし

    いつもお世話になります。 エクセルの計算式が使えるかお願い致します。 セル(A1からC1)に任意で数値が入力されています。 その数値がセル(E1からI1)固定の数値と一致した場合、一致したところだけ”塗りつぶし”する方法がありますか。 (EX)    A1 B1 C1 D1 E1 F1 G1 H1 I1 1  1  3  5  1  2  3  4  5  2  1  2  5  1  2  3  4  5  3  2  3  4  1  2  3  4  5 

  • Excelで数値が正しく入力できない

    Excel 2010で任意のセルに数値をインプットするとその数字の1/1000(x0.001)の 価が表示されます。2019とインプットすると2.019と表示されます。どのセル、どのブック、どのファイルでも同様です。リボンを操作しても直りません。漢字などは 普通に入力できます。数字を文字列化(’をつける)するとそのまま入力できます。 計算ができないので困っています。

  • エクセルで数値入力後のカーソル移動のやり方

    エクセルを使って数値入力が多いのですがセル内にたとえば入力するのが4文字の数字で次々に入力するときに4文字を入れたら次の入力カーソルに移動する方法はないでしょうか?エクセルのバージョンは問いません。

  • VBA セルに入力されている数値でセルを指定する

    Excel VBA初心者です。 Sheet1のA1セルに10、A2セルに3を入力しています。 この入力したセルの数値を参照して、 Sheet2の「Cells(10,3)」(C10セル)を青(Interior.ColorIndex = 5)に 書式変更したいのですが、「Cells(”Sheet1.A1の値”,”Sheet1.A2の値”)」の 書き方がわかりません。 Excel2010を使用しています。 よろしくお願いします。

  • 特定のセルの数値より大きな数字を入力できないようにしたいです。

    特定のセルの数値より大きな数字を入力できないようにしたいです。 たとえばA1セルにテストの満点の数値が入っているとします。 A2セル以下にはその数字より大きな数字を入れようとするとエラーが出るようにしたいのです。 たとえばA1の数値が100なら100より大きなを誤って入力しないように。 ここで問題なのがA1に入る数字は常に100とは限らないという点です。 50の時もあれば40や25の時もあります。 だからその場合場合で入力規則を設定するのではなく、A1の数値を変えればA2以下の入力規則に反映されるようにしたいのです。 方法はありますでしょうか。

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

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

  • EXCELで数値の入ったセルがいくつあるか計数

    EXCELで数値の入ったセルがいくつあるか計数したい。 どうすればいいか。 例題 1~200までの値の範囲でF1~F300までの各セルにランダムに数値が入っています。 これを次の4つに分類し各カウントをする。 (a):値が1~5までが何個 (b):値が6~10まで何個 (c):値が11~20まで何個 (d):値が21以上何個

  • EXCELで セルの端に数値を 入力したい

    EXCELで セルの端に数値を 入力する方法 と セルに入力した数値を 中央に置く方法を教えてください (セルは結合していて偶数)

  • Excelの条件付き書式、直接入力と参照した数値は違う?

    Excelの条件付き書式、直接入力と参照した数値は違う? Sheet1のA1セルの数値を Sheet2のA1セルが「=IF(Sheet1!A1="","",Sheet1!A1)」という数式で参照しています。 数値に、「%以上」という文字列を追加したいので、 Sheet2のA1セルの書式設定を、ユーザー定義で「0"%""以""上"」としています。 Sheet1のA1セルに数値を入力 → Sheet2のA1セルが参照 → ユーザー定義で「○%以上」と表示させる。 ・・・ここまでは簡単にできました。 さらに、数値が表示されたときにセルの色を赤くしようと、 条件付き書式で、 「セルの値が 次の値以上 0」 と設定したのですが、入力が無くても赤いままになってしまいます。 設定を、 「セルの値が 次の値以上 ="0"」とか、 「セルの値が 次の値より大きい 0」とか、 いろいろとやってみましたがどうしてもうまくいきません。 参照ではなく、セルに直接入力するのであればこれでうまくいっていましたので、簡単に出来るものだと思っていたのですが、 これはたぶん、私が根本的なことをわかっていないのだと思います。 ご教授頂けましたら助かります。

専門家に質問してみよう