• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルvbaで、同じ番号の請求書の金額をまとめる方法 2)

エクセルVBAで同じ番号の請求書の金額をまとめる方法

このQ&Aのポイント
  • エクセルVBAを使用して、同じ番号の請求書の金額をまとめる方法について教えてください。
  • 上記のデータには、日付、請求書番号、金額、金額合計が含まれており、M列にも同じ請求書番号の金額の合計を表示したいと考えています。
  • 現在のプログラムに加筆することで、目的を達成することができるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

修正しました。 I列とL列とは同じ構造で連動していることが条件です。 前回から修正を加えたのは、書式で右側を開け、桁揃えをすることにしました。 '.HorizontalAlignment = xlCenter '修正 そのために、コメントブロックしています。 合計欄のコメントブロックを外すと、K列、M列に最後のデータの次に合計が出ます。 '// Sub MacroTest2()  Dim i As Long, j As Long  Dim buf As Variant, ret As Double  Dim buf2 As Variant, ret2 As Double  Application.ScreenUpdating = False  For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row   buf = Val(Cells(i, 9).Value) 'I   buf2 = Val(Cells(i, 12).Value) 'M   If Cells(i, 2).Value <> Cells(i + 1, 2).Value Then   If j = 0 Then j = i    With Range(Cells(j, 11), Cells(i, 11)) 'K     .MergeCells = True     '.HorizontalAlignment = xlCenter '修正     .VerticalAlignment = xlCenter    End With    With Range(Cells(j, 13), Cells(i, 13)) 'L     .MergeCells = True     '.HorizontalAlignment = xlCenter '修正     .VerticalAlignment = xlCenter    End With    ''0の場合は出力しないが、0を出力する場合はIf--End If を辞める    If buf + ret > 0 Then     Cells(j, 11).Value = buf + ret    End If    If buf2 + ret2 > 0 Then     Cells(j, 13).Value = buf2 + ret2    End If    Cells(j, 11).NumberFormat = "#,##0_ "    Cells(j, 13).NumberFormat = "#,##0_ "    ret = 0: j = 0    ret2 = 0   Else   If j = 0 Then j = i    ret = buf + ret    ret2 = buf2 + ret2   End If  Next  ''合計欄 ' With Cells(i, 11) '  .NumberFormat = "#,##0_ " '  .Formula = "= SUM(R1C:R[-1]C)" '  .Offset(, 2).Formula = "= SUM(R1C:R[-1]C)" ' End With ' Application.ScreenUpdating = True End Sub p.s.おそらく、この先に、見栄えを整えるために、罫線を入れたいという要求があるかもしれませんが、とりあえずは、ここまでにします。必要な場合は、画像を入れてくださるとありがたいです。

ssssh
質問者

お礼

稼働しました。 夜遅くにもかかわらず、たいへんありがとうございました。 再度のご対応に感謝いたします。

関連するQ&A

専門家に質問してみよう