
エクセルで、1つのセルで上書き足し算して
セルの範囲を指定できますか?
パソコン初心者です。
お時間があったらお答えをおねがいします!
自分で色々検索して参考になるものがあったのですが
他のセル場所を指定しても反映されずどのように作れば良いか分からなくなってしまいました。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myValue As Double
Dim preVAlue As Double
'セルは、A1
If Target.Address <> "$A$1" Then Exit Sub
With Application
.EnableEvents = False
.ScreenUpdating = False
If VarType(Target.Value) = vbDouble Then
myValue = Target.Value
.Undo
preVAlue = Target.Value
If VarType(preVAlue) = vbDouble Then
Target.Value = myValue + preVAlue
Else
Target.Value = myValue
End If
End If
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
を使ってA1だけでなくA1からC3まで同じ動作がセルごとにできるようにしたいのですが分かる方がいらっしゃったら教えて頂きたいです。
よろしくお願いします。
作成はシートタブのコードの表示でつくていますが、
他に同じ動作で簡単にできるものがあれば教えて頂きたいです、、、
No.3ベストアンサー
- 回答日時:
fuj*** さん。
こんなのは、どうでしょう!!'【標準モジュール】
Public Const strRng As String = "A1:C3"
Public myArray As Variant
'【シートモジュール】
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRng As Range
Dim r As Range
Set myRng = Intersect(Target, Range(strRng))
If Not myRng Is Nothing Then
Application.EnableEvents = False
For Each r In myRng
r = WorksheetFunction.Sum(r, myArray(r.Row, r.Column))
Next
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range(strRng)) Is Nothing Then
myArray = Range(strRng)
End If
End Sub
No.2
- 回答日時:
こんにちは
ご質問には直接関係はないので、回答ではありませんけれど・・
一つのセルを上書きしてしまう仕様なので、セル範囲(=複数セル)にコピペで値を入力した際にも問題ないように配慮しておいた方がよさそうな気がします。
まぁ、そのようなコピペなど絶対に行わないというのであれば、無視してくだされば良いですが。
No.1
- 回答日時:
Public myValue As Double
Private Sub Worksheet_Change(ByVal Target As Range)
Dim preVAlue As Double
'セルは、A1
If Intersect(Target, Range("$A$1:$C$3")) Is Nothing Then Exit Sub
With Application
.EnableEvents = False
.ScreenUpdating = False
If VarType(Target.Value) = vbDouble Then
myValue = Target.Value
.Undo
preVAlue = Target.Value
If VarType(preVAlue) = vbDouble Then
Target.Value = myValue + preVAlue
Else
Target.Value = myValue
End If
End If
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
かな?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】並び替えの範囲が、...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
エクセルの改行について
-
[VB.net] ボタン(Flat)のEnable...
-
質問58753 このコードでうまく...
-
【ExcelVBA】5万行以上のデー...
-
vbs ブック共有を解除
-
VBAでCOPYを繰り返すと、処理が...
-
vbaにてseleniumを使用したedge...
-
【マクロ】開いているブックの...
-
(EXCEL超初心者)EXCELの関数(ま...
-
算術演算子「¥」の意味について
-
Excel 範囲指定スクショについ...
-
2つのマクロでチェックボックス...
-
vbsでのwebフォームへの入力制限?
-
【マクロ】変数を使った、文字...
-
以下のプログラムの実行結果は...
-
VBA レジストリの値の読み方に...
-
Vba セルの4辺について罫線が有...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
testファイル内にある複数のpng...
-
改行文字「vbCrLf」とは
-
エクセルVBA 検索結果を隣のシ...
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
【マクロ】切取りの場合、形式...
-
【ExcelVBA】5万行以上のデー...
-
ExcelVBAでパワポを操作したい
-
(EXCEL超初心者)EXCELの関数(ま...
-
エクセルの改行について
-
Excelマクロで使うVBAコードを...
-
ワードの図形にマクロを登録で...
-
【マクロ】変数を使った、文字...
-
VBAでFOR NEXT分を Application...
-
VBAの質問(Msgboxについて)です
-
エクセルのVBAコードについて教...
-
Excelマクロで使うVBAコードを...
-
Excelのマクロについて教えてく...
-
VBAの「To」という語句について
-
【マクロ】値を渡されたプロシ...
おすすめ情報