• 締切済み

Excelの質問

同一セル内で数字を足し算していくことはできないんでしょうか? 例えば、30と言う数字が入力されており、同じセル内に50を入力すると、通常は50と言う数字に入れ替わりますが、これを30と50を足して80に自動的にできる方法はありますでしょうか?

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。Wendy02です。 コードの中の4行目を以下を替えてみてください。  If .Address <> "$A$1" Then Exit Sub      ↓ If Intersect(Target, Range("B2:B20")) Is Nothing Then Exit Sub たぶん、良いと思いますが、十二分に試験してみてください。 あまり、この種のイベント・ドリブン型マクロは、そういうことはしませんので、自信がありません。

akituti
質問者

お礼

一度試してみます。ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 Wendy02です。 そのマクロを取り付けようとするワークシートのシートタブ(下部)を右クリックすると、「コードの表示(V)」というメニューがありますから、それをクリックしてください。そして、開いた画面に、以下のコードを貼り付けて、Alt + Q で閉じれば設定は完了です。 Private Sub Worksheet_Change(ByVal Target As Range)  Dim myNum As Double  With Target   If .Address <> "$A$1" Then Exit Sub   If IsNumeric(.Value) = False Then Exit Sub   Application.EnableEvents = False    myNum = .Value    Application.Undo '以前の値を取り出す    If IsNumeric(.Value) Then     .Value = .Value + myNum    Else     .Value = myNum    End If   Application.EnableEvents = True  End With End Sub なお、これは、削除キーが利きませんから、0にする場合は、一旦、そのセルに文字列を入れれば、前のデータはクリアになります。また、計算上などで、エラーが発生したりすると、現在のコードでは回避できませんので、イベント・ドリブン型のマクロが利かなくなることがあります。その場合は、Visual Basci Editor 画面(Alt + F11)から、表示-イミディエイトウィンドウを出して、そこに、    Application.EnableEvents = True と入れて、Enter を入れると、マクロは復活します。

akituti
質問者

お礼

回答ありがとうございました。早速試してみました。現在はA1のセルでできるようになりました。例えばこれを応用してB2のセルからB20のセルまでをこのようにできるよう設定をするには"$A$1"を変更すればいいのでしょうか?回答宜しくお願い致します。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 同一セルに入力するということは、同一セルには数式は入れることが出来ませんね。ですから、マクロでの解決以外にはないと思いますが、それでもよければ公開します。

akituti
質問者

お礼

早々の回答ありがとうございます。申し訳ありませが、マクロでの解決方法を宜しくお願い致します。

関連するQ&A