マクロで小計行を入力する方法
はじめまして。
過去問を検索したのですが、よく分からなかったので質問させていただきます。
数日前にマクロの練習をし始めたばかりで、分からないことが多々あるのですが、ある表を練習で作っていて詰まってしまいました。
番号 月日 会社名 金額
1 11/1 A社 100
2 11/5 A社 200
3 11/4 B社 150
4 11/9 C社 300
このような表があるとして
番号 月日 会社名 金額
1 11/1 A社 100
2 11/5 A社 200
<空白行3行>
3 11/4 B社 150
<空白行3行>
4 11/9 C社 300
※空白行が3行なのは、印刷した時に会社ごとの境目を見やすくする為です。
この表をマクロを使って自動で会社ごとの境目に空白行を挿入するまではできました。
この後、金額の下に会社ごとの小計を出したいのです。
毎月各社の項目数が変化するので、小計欄を固定することが出来ません。
なので、引数の設定で詰まってしまっています。
色々なサイト様を回って
myLAST_ROW = Cells(Rows.Count, 2).End(xlUp).Row
myTOP_ROW = 2
myBOTTOM_ROW = i - 1
Set myRANGE = _
Range(Cells(myTOP_ROW, 4), Cells(myBOTTOM_ROW, 4))
Cells(i, 4).Formula = "=SUM(" & myRANGE.Address & ")"
myTOP_ROW = i + 1
というのが自分の思う内容に一番近いところまでいったのですが、
番号 月日 会社名 金額
1 11/1 A社 100
2 11/5 A社 200
300
3 11/4 B社 150
450
4 11/9 C社 300
750
のようになってしまいます。
直前のVBAはこうなっています(実際はこの前にページ設定などが入っています)。
For i = Cells(Rows.Count, myCol).End(xlUp).Row To 3 Step -1
If Cells(i, myCol) <> Cells(i - 1, myCol) Then
Rows(i).Insert
Rows(i).Insert
Rows(i).Insert
素人の文面で大変見づらく、そして分かりにくくて申し訳ないのですが、ご教授頂ければ幸いです。
お礼
早速の返事ありがとうございます。早速入力しましたが、エラーになってしまいます。黄色い色で.Range("B")が示されます。どうしてですか? Sub 入力() Dim LastRow As Long With Worksheets("Sheet2") LRow = .Range("A65536").End(xlUp).Offset(1, 0).Row .Range("A" & LRow).Value = LRow - 1 .Range("B" & LastRow).Value = Worksheets("Sheet1").Range("A6").Value .Range("C" & LastRow).Value = Worksheets("Sheet1").Range("A7").Value
補足
ありがとうございます。もう一つ深く教えてください。自分が作成したマクロに入れ込みたいのですが、何処に入れれば良いか教えてください。 Sub 入力() Dim LastRow As Long With Worksheets("Sheet2") LastRow = Worksheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row + 1 .Range("A" & LastRow).Value = Worksheets("Sheet1").Range("A6").Value .Range("B" & LastRow).Value = Worksheets("Sheet1").Range("A7").Value .Range("C" & LastRow).Value = Worksheets("Sheet1").Range("A8").Value .Range("D" & LastRow).Value = Worksheets("Sheet1").Range("A9").Value .Range("E" & LastRow).Value = Worksheets("Sheet1").Range("A10").Value .Range("F" & LastRow).Value = Worksheets("Sheet1").Range("A12").Value