Excel VBA質問箱 IV

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

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


42808 / 76732 ←次へ | 前へ→

【38986】処理速度を速めるには??
質問  aaa  - 06/6/15(木) 16:47 -

引用なし
パスワード
   いつもお世話になっております。
たくさんの処理をマクロで行っており、処理速度が向上せず困っています。
問題はこの以下の箇所のようです。

1.セル範囲のデータクリア
Worksheets("Sheet1").Range("A:G").Clear
Worksheets("Sheet2").Range("B:H").Clear

※本当は2行目の方の範囲はB列からH列でデータが入っている範囲全てとしたいのですが、いい方法が思いつかず上記のようになっています。
最初「Range("B2:H65535")」としていたのですが、処理が途中で止まりフリーズします。

2.セル範囲のコピー
i = Worksheets("Sheet1").Range("I1").Value
Set myRng1 = Worksheets("Sheet1").Range("A1:G" & i)
Set myRng2 = Worksheets("Sheet2").Range("B2")
myRng1.Copy
myRng2.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Set myRng1 = Nothing
Set myRng2 = Nothing

iではデータの最終行を取得したセルの値で、それを元にセル範囲を決めています。
ここがどうしても遅いのです。
コピー元のデータはその時々により変化しますが、基本的には200行以上です。
たぶんデータ量が多すぎてコピーに時間がかかるのではと思いますが、対処法はありますか?
その後H列のみ数値データに変換したいので下記のような処理を行っています。

Worksheets("Sheet2").Select
Range("H1:H" & i).Select
Selection.NumberFormatLocal = "\#,##0_);[赤](\#,##0)"

あまりいい方法ではない気がするのですが、これ以外の方法で文字列として入力された数値データを一気に変換するマクロはありますか?

どうかよろしくお願いします。

1 hits

【38986】処理速度を速めるには?? aaa 06/6/15(木) 16:47 質問
【39034】Re:処理速度を速めるには?? ハチ 06/6/16(金) 11:34 発言
【39143】Re:処理速度を速めるには?? aaa 06/6/19(月) 10:18 質問
【39038】Re:処理速度を速めるには?? Jaka 06/6/16(金) 12:08 発言
【39144】Re:処理速度を速めるには?? aaa 06/6/19(月) 10:21 発言
【39146】Re:処理速度を速めるには?? Jaka 06/6/19(月) 11:05 発言
【39153】Re:処理速度を速めるには?? aaa 06/6/19(月) 11:37 発言
【39166】Re:処理速度を速めるには?? Kein 06/6/19(月) 14:42 発言

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