アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問いたします。
A列に支店コード(4桁の数値)、J列に金額、K列に手数料があります。

支店は5箇所でデータは1支店あたり100~500行ほどあります。全支店のデータが連続しています。

1.支店コードの最終行の下に1行挿入し、J列,K列の小計を計算する。
2.最後の支店の小計の下に一行あけてJ列,K列の合計をしたい。

どのようにしたら良いか教えてください。

A 回答 (2件)

(テストデータ)A1:C9小計合計のない状態で。

下記は結果です。
支店コード金額手数料
1101
1202
1303
小計606
2101
2202
小計303
352
3102
3151
小計305
合計12014
(コード)
Sub test01()
d = Range("a2").CurrentRegion.Rows.Count
' MsgBox d
Cells(d + 1, 1) = "END"
Dim st1, gt1, st2, gt2 As Long
st1 = 0: gt1 = 0: st2 = 0: gt2 = 0
mk = Cells(2, 1)
'==========
For i = 2 To 10000
If Cells(i, 1) = "END" Then Exit For '最終行判定
If Cells(i, 1) = mk Then '前行とコード同じか
'------今回行分加算
st1 = st1 + Cells(i, 2)
st2 = st2 + Cells(i, 3)
Else
mk = Cells(i, 1)
'--------小計
Cells(i, 1).EntireRow.Insert
Cells(i, 1) = "小計"
Cells(i, 2) = st1
gt1 = gt1 + st1
st1 = 0
Cells(i, 3) = st2
gt2 = gt2 + st2
st2 = 0
'-----今回行分加算
i = i + 1
st1 = st1 + Cells(i, 2)
st2 = st2 + Cells(i, 3)
End If
Next i
'============終了
'-------小計
Cells(i, 1) = "小計"
MsgBox st1
Cells(i, 2) = st1: gt1 = gt1 + st1: st1 = 0
Cells(i, 3) = st2: gt2 = gt2 + st2: st2 = 0
'-------合計
Cells(i + 1, 1) = "合計"
Cells(i + 1, 2) = gt1
Cells(i + 1, 3) = gt2
End Sub
(結果)上記の通り
(本番注意)
(1)B列-->J列、2-->10,C列-->K列、3-->11
(2)最後にENDが残るが消す。
(3)テストする時、元データを残して行うこと。
  行が増えてしまうので、元戻しが大変ですから。
    • good
    • 1
この回答へのお礼

ご回答感謝いたします。
お教えのとおりにしましたらうまくいきました。
ありがとうございました。

お礼日時:2002/11/27 19:38

こんにちは。

maruru01です。

「Visual Basic」のカテゴリーということは、マクロ(VBA)で行いたいということでしょうか。
支店数が5ということでしたら、総計を入れて6行分追加して関数を入力するだけで、手作業でやった方が早いと思いますが。
それとも、そのようなファイル(やシート)がたくさんあって、マクロで自動化したいということでしょうか。
もしくは、単に入力する関数がわからないということでしょうか。
補足して下さい。

この回答への補足

早速のご回答ありがとうございます。
質問の仕方が悪く、趣旨がうまく伝わらなくて申し訳ありません。
行がたくさんあります。しかも月によって一支店分の行数が不定です。
A列
1234
1234
1234



1234
(1行挿入)    J列小計、K列小計
5678
5678
5678



5678
(1行挿入)    J列小計、K列小計
7890
7890

のように1234や5678の最後の行をつかみ、下に行を挿入し、J列、K列の数値の小計を出したいのです。そして全支店の総合計も出したいのです。手作業ですとかなり時間がかかりますし、毎月のことですので、BVAで自動化できないものかと思ったのです。よろしくお願いします。

補足日時:2002/11/27 17:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています