- ベストアンサー
VBAでの集計方法について
今、あるプログラムを作成していますが、合計の出し方が分かりません。 B列に数値が並んでおり、その最終行に合計を入れたいのです。更にそのセルの上辺に二重線を付けたいのですが、困っています。 ただし、列に並ぶ数はその時によって変化します。 どなたか、詳しい方教えていただければ幸いです。
- みんなの回答 (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)
合計する最上のセルは固定であることがほとんど。 問題は下の最終行をどのようにして捉えるか。 (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