ここから本文です

VBAの質問です。 こちら初心者なので抽象的な質問で大変申し訳ないのですが、 ...

inu********さん

2010/11/822:07:23

VBAの質問です。

こちら初心者なので抽象的な質問で大変申し訳ないのですが、
今、43200行データのあるSheetに対して、
Forループで一定のセルに対し、乱数を加算するような処理を組み込んでいるのですが、

非常に動作が遅いです。

Forループの中に
Application.StatusBar = "現在 " & cntRec & "件"

を埋め込んでいますが、1秒に3件程度しか処理されず非常に遅いです。

高速化のコツ等ありましたらご教授ください。

Withの使用と画面の再計算停止、開始は行っています。

閲覧数:
254
回答数:
2

違反報告

ベストアンサーに選ばれた回答

hig********さん

2010/11/822:36:42

現在のコードを提示してもらえませんか?

それに、処理速度を求めるなら
>Application.StatusBar = "現在 " & cntRec & "件"
無駄なコードはやめた方が良いと思いますよ

私の環境(OS:2000、excel:2000)で試したら
Sub test()
Dim i
For i = 1 To 50000
Cells(i, 1).Value = Cells(i, 1).Value + Int((6 * Rnd) + 1)
Application.StatusBar = "現在 " & i & "件"
Next
End Sub
>Application.StatusBar = "現在 " & cntRec & "件"
ありで10秒、なしで5秒でした

参考まで

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

por********さん

2010/11/913:05:00

こんにちは。
計算式があって、再計算している、ということはありませんか?
forループで処理しているのでしたら、「手動計算」と「自動計算」のマクロステップを使って、ください。

Withの使用と画面の再計算停止、開始は行っています。 <=== スクリーンアップデートのことでは、ないですよね?
よく高速化の記事に、画面表示能力のことが、よくあるので、確認です。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる