Excel VBA質問箱 IV

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

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


3779 / 76735 ←次へ | 前へ→

【78585】Re:大容量Dataのシート間のコピーについて
回答  亀マスター  - 16/11/18(金) 17:14 -

引用なし
パスワード
   実はセルのデータを読み込んだり書き込んだりというのは結構負荷がかかるものであり、このように大量のセルをひとつひとつ操作していると時間がかかります。
そこで、セルの読み書き回数を減らすために、セル範囲をバリアント型の変数に読み込んで操作し、最後にセルに戻すというのが常套手段です。

具体的には、

Dim v1 As Variant, v2 As Variant

v1 = Range("A1:P45000")
v2 = Range("A1:AV15000")

'v1、v2を配列と見なして操作
'例)v2(1, 5) = v1(2, 3)

Range("A1:AV15000") = v2
Range("A15001:P45000").Clear

これならセルを操作するのが4回だけなので、かなり高速化できると思います。

10 hits

【78581】大容量Dataのシート間のコピーについて VBA初心者 16/11/18(金) 10:42 質問[未読]
【78585】Re:大容量Dataのシート間のコピーについて 亀マスター 16/11/18(金) 17:14 回答[未読]
【78586】Re:大容量Dataのシート間のコピーについて β 16/11/18(金) 19:03 発言[未読]

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