|
▼吉 さん:
おはようございます。
正解っていうのは無いと思いますので
自分ならこうする を書きます。
自分も修行中なので自信はありませんが。
サンプルがなくて動作確認できてません。
動かなかったら手直しして下さい。
1、GoukeiAを求める場合に+25、+27などとすると
行数が変わって改版するときにミスりそうです。
列の合計Cells(5,247)も計算で出せるようにしたほういいのでは。
2、Withの位置。Worksheetのコントロールなら問題ないですが、
フォームからだとActiveなSheetに列の合計を打ち込みそうです。
3、最後のところで実数にしてるっぽいですが前のままだと
Application.CutCopyMode = False
を入れないとコピーモードで終わりそうな気がします。
>初めはSUM関数で処理していたのですが、行数が増えてくるとBookの容量が大きくなるの>でマクロで処理するようにしたのですが、
の考慮なら、使用してる範囲を全部実数するほうがいいのかなと。
Private Sub CommandButton2_Click()
Dim a, i As Integer '開始Columnの指定
Dim GoukeiA As Integer '合計のColumn
Dim LRow As Long 'D列の最終行
With Worksheets("人員集計")
LRow = .Range("D65536").End(xlUp).Row
a = 5
For i = 1 To 9
GoukeiA = a + 25
'行の計
.Range(.Cells(4, GoukeiA), .Cells(LRow, GoukeiA)).FormulaR1C1 = "=SUM(RC" & a & ":RC" & GoukeiA - 1 & ")"
'累計
.Cells(4, GoukeiA + 1).FormulaR1C1 = "=RC[-1]"
.Range(.Cells(5, GoukeiA + 1), .Cells(LRow, GoukeiA + 1)).FormulaR1C1 = "=R[-1]C+RC[-1]"
a = a + 27
Next i
'列の計
.Range(.Cells(3, 5), .Cells(3, 247)).FormulaR1C1 = "=SUM(R[1]C:R[" & LRow & "]C)"
.UsedRange.Value = .UsedRange.Value
End With
End Sub
|
|