- 締切済み
Excelの質問
同一セル内で数字を足し算していくことはできないんでしょうか? 例えば、30と言う数字が入力されており、同じセル内に50を入力すると、通常は50と言う数字に入れ替わりますが、これを30と50を足して80に自動的にできる方法はありますでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。Wendy02です。 コードの中の4行目を以下を替えてみてください。 If .Address <> "$A$1" Then Exit Sub ↓ If Intersect(Target, Range("B2:B20")) Is Nothing Then Exit Sub たぶん、良いと思いますが、十二分に試験してみてください。 あまり、この種のイベント・ドリブン型マクロは、そういうことはしませんので、自信がありません。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 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 を入れると、マクロは復活します。
お礼
回答ありがとうございました。早速試してみました。現在はA1のセルでできるようになりました。例えばこれを応用してB2のセルからB20のセルまでをこのようにできるよう設定をするには"$A$1"を変更すればいいのでしょうか?回答宜しくお願い致します。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 同一セルに入力するということは、同一セルには数式は入れることが出来ませんね。ですから、マクロでの解決以外にはないと思いますが、それでもよければ公開します。
お礼
早々の回答ありがとうございます。申し訳ありませが、マクロでの解決方法を宜しくお願い致します。
お礼
一度試してみます。ありがとうございました。