VBA初心者です。
VBAでEXCELの行の値を累計したいのですが、プログラムの仕方がわかりません。
どなたかわかる方教えてください。
A B C D E ・・・・
1 1000 3000 2000 4000 3000
2 2000 5000 1000 3000 2000
3 4000 2000 3000 1000 5000
:
実行結果
A B C D E ・・・・
1 1000 4000 6000 10000 13000
2 2000 7000 8000 11000 13000 ←行の値の累計
3 4000 6000 9000 10000 15000
:
行と列はたくさんあって、最後のセルまで累計する方法を教えていただけるとありがたいです。
どうぞよろしくお願いします。m(_ _)m
No.1ベストアンサー
- 回答日時:
数式の方が簡単ですよね
VBAの方も初歩的なことですが
一応提示しておきますが
Sub test()
Dim x, y
For x = 1 To 3 '行数
For y = 1 To 5 '列数
If y = 1 Then
Worksheets("sheet2").Cells(x, y).Value = Worksheets("sheet1").Cells(x, y).Value
Else
Worksheets("sheet2").Cells(x, y).Value = Worksheets("sheet1").Cells(x, y).Value + Worksheets("sheet1").Cells(x, y).Offset(, -1).Value
End If
Next y
Next x
End Sub
参考?まで
No.2
- 回答日時:
こんばんは。
必ず、マトリックス(格子状)になっていることが条件です。
累計は上書きしてしまいます。マクロを行った直後だったら、元に戻すことも可能です。ただし、あまり大きな表ですと、どうなるか不明です。出来る限り、一旦保存してからのほうが安全です。
'-------------------------------------------
Option Explicit
Dim arBackUp As Variant 'バックアップ用
Sub CumilativePastePr()
Dim rng As Range
Dim r1 As Range
Dim r2 As Range
Dim i As Long
Set rng = Range("A1").CurrentRegion
arBackUp = rng.Value
Application.ScreenUpdating = False
With rng
For i = 2 To .Columns.Count
Set r1 = .Columns(i - 1)
Set r2 = .Columns(i)
r2Sum r1, r2
Next i
End With
Application.ScreenUpdating = True
Set rng = Nothing
Set r1 = Nothing : Set r2 = Nothing
End Sub
Private Sub r2Sum(r1 As Range, r2 As Range)
Dim i As Variant
Dim ar1 As Variant
Dim ar2 As Variant
ar1 = r1.Value
ar2 = r2.Value
For i = 1 To r1.Rows.Count
r2.Cells(i, 1).Value = ar1(i, 1) + ar2(i, 1)
Next i
End Sub
'-------------------------------------------
'おまけ
Sub RetrivalOrg()
'元に戻すマクロ
Dim x As Long
Dim y As Long
On Error Resume Next
x = UBound(arBackUp, 1)
y = UBound(arBackUp, 2)
If Err.Number > 0 Then MsgBox "元には戻りません。", 48: Exit Sub
On Error GoTo 0
Range("A1").Resize(x, y).Value = arBackUp
End Sub
----------------------------------------
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル・スプレッドシートで、一定数を超えたらゼロから再累計する方法 8 2022/05/28 03:52
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Excel(エクセル) VBA SUM関数を入力したい 6 2022/08/20 20:10
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2つのシートを重複検索したあと...
-
VBAでグループごとソートす...
-
(3)(4)がわからないです。 (1) ...
-
力率80%の根拠
-
ACアダプタについて教えてくだ...
-
エミッタ接地基本増幅回路の交...
-
12Vで4mA流れている経路に、抵...
-
三相三線式のS相は接地されてい...
-
パルスとレベルについて
-
開放電圧って?
-
モーターの電流値が上がるのは...
-
「電流を印加する」という表現...
-
電気回路のπ型回路の2端子対回...
-
近接スイッチの2線式と3線式...
-
400V 3相4線式について...
-
ヒューズは何故劣化するのですか?
-
ブレーカー容量の余裕について
-
単相モーターと三相モーターの...
-
電圧を下げる方法
-
電気設備で使われるGCの意味...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 行の値を累計したい...
-
剛体の力学の問題 正三角形
-
球殻状のコンデンサの電界を求...
-
統計学(離散型確率変数)の問...
-
材料力学の問題ですが
-
4次方程式の固有値の求め方
-
トラックへの荷物の積みかたを...
-
iPad Airの購入について
-
電気回路 Y-Δ変換について
-
電気回路の閉路方程式の問題
-
材料力学について質問です。 問...
-
エクセル 指定した複数の文字の...
-
θ=(C1/r^2)+C2•••(8) 定数C1,C2...
-
2つのシートを重複検索したあと...
-
ブタジエン(M1)/アクリロニトリ...
-
作った表から一覧表を作成をしたい
-
流体力学の公式証明が解らない
-
抵抗値計算
-
対称・反対称な波動関数
-
(3)(4)がわからないです。 (1) ...
おすすめ情報