Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


44047 / 76732 ←次へ | 前へ→

【37708】Re:集計処理速度を早くするには?
発言  ハチ  - 06/5/16(火) 9:59 -

引用なし
パスワード
   ▼吉 さん:

おはようございます。
正解っていうのは無いと思いますので
自分ならこうする を書きます。
自分も修行中なので自信はありませんが。
サンプルがなくて動作確認できてません。
動かなかったら手直しして下さい。

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
0 hits

【37643】集計処理速度を早くするには? 06/5/13(土) 20:12 質問
【37646】Re:集計処理速度を早くするには? ハチ 06/5/14(日) 1:59 回答
【37653】Re:集計処理速度を早くするには? ハチ 06/5/14(日) 11:27 回答
【37695】Re:集計処理速度を早くするには? 06/5/15(月) 20:34 お礼
【37708】Re:集計処理速度を早くするには? ハチ 06/5/16(火) 9:59 発言
【37709】Re:集計処理速度を早くするには? ハチ 06/5/16(火) 10:08 発言
【37719】Re:集計処理速度を早くするには? 06/5/16(火) 19:00 お礼

44047 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free