• ベストアンサー

VBAでの集計方法について

今、あるプログラムを作成していますが、合計の出し方が分かりません。 B列に数値が並んでおり、その最終行に合計を入れたいのです。更にそのセルの上辺に二重線を付けたいのですが、困っています。 ただし、列に並ぶ数はその時によって変化します。 どなたか、詳しい方教えていただければ幸いです。

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

  • ベストアンサー
  • vvooo
  • ベストアンサー率33% (3/9)
回答No.2

シート1のB1~最終行まで合計します Sub Test() Dim WS As Worksheet Dim Lrow As Long Set WS = Worksheets("Sheet1") Lrow = WS.Range("B" & CStr(Rows.Count)).End(xlUp).Row With WS.Range("B" & CStr(Lrow)).Offset(1, 0)    .Borders(xlEdgeTop).LineStyle = xlDouble    .Value = _      WorksheetFunction.Sum(WS.Range("B1:B" & CStr(Lrow))) End With End Sub

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

合計する最上のセルは固定であることがほとんど。 問題は下の最終行をどのようにして捉えるか。 (1)1行ずつ聞いていって、空白行が見つかったらその前でやめる。 (2)ENDメソッドを使う (3)UsedRangeやCurrentRegionを使う 最近の回答では(2)が多い。 (A)B2からENDキーを押し↓きー (B)これ以下の行は使わないセルをぽいんつぃてから、Endキーを押し↑キー (B)でやれば Sub test01() d = Range("B30").End(xlUp).Row Cells(d + 1, "B").Formula = "=sum(B2:B" & d & ")" '--罫線 Cells(d + 1, "B").Borders(xlEdgeTop).LineStyle = xlContinuous Cells(d + 1, "B").Borders(xlEdgeTop).Weight = xlThick Cells(d + 1, "B").Borders(xlEdgeTop).LineStyle = xlDouble End Sub

関連するQ&A

専門家に質問してみよう