Excel VBA質問箱 IV

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

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


16791 / 76738 ←次へ | 前へ→

【65411】Re:処理速度について
回答  mura  - 10/5/19(水) 10:34 -

引用なし
パスワード
   >セルのバックカラーを色塗りしていくのと、
>塗りつぶしの代わりに、セルに記号を入れていくのと、処理的には
>どちらが、早いのでしょうか?

配列にてセルに記号を入れる方法が10倍以上は早いと思います。
以下速度テストの例
Sub test1()
 Dim rr As Range, rg As Range, tm!, vv, xx&, yy&
 Set rg = Range("a1:z10000")
 Cells.Clear
 tm = Timer
 For Each rr In rg
  If rr.Value = "" Then rr.Interior.Color = vbGreen
  'If rr.Value = "" Then rr.Value = "×"
 Next
 Debug.Print "Rangeオブジェクトの例 "; Timer - tm
 
 Cells.Clear
 tm = Timer
 vv = rg
 For xx = 1 To UBound(vv, 2)
  For yy = 1 To UBound(vv)
   If vv(yy, xx) = "" Then vv(yy, xx) = "○"
  Next
 Next
 rg = vv
 Debug.Print "配列の例 "; Timer - tm
End Sub

始めに示されたコードで
xx = Range("A" & i).Value
xx = Cells(i, 1).Value 
等の部分、要するにRangeオブジェクトの部分を
全て配列に直せば相当早くなるでしょう。
配列での処理はメモリへの直接アクセスなので最速です。

0 hits

【65351】処理速度について かな 10/5/14(金) 8:56 質問
【65352】Re:処理速度について Hirofumi 10/5/14(金) 12:51 発言
【65353】Re:処理速度について かな 10/5/14(金) 13:24 発言
【65355】Re:処理速度について neptune 10/5/14(金) 14:36 発言
【65380】Re:処理速度について かな 10/5/17(月) 8:57 お礼
【65360】Re:処理速度について Hirofumi 10/5/14(金) 16:46 回答
【65381】Re:処理速度について かな 10/5/17(月) 8:58 お礼
【65361】Re:処理速度について よろずや 10/5/14(金) 18:34 発言
【65382】Re:処理速度について かな 10/5/17(月) 9:02 お礼
【65371】Re:処理速度について H. C. Shinopy 10/5/15(土) 23:24 回答
【65383】Re:処理速度について かな 10/5/17(月) 9:07 お礼
【65394】Re:処理速度について かな 10/5/18(火) 8:40 質問
【65397】Re:処理速度について Hirofumi 10/5/18(火) 11:01 発言
【65413】Re:処理速度について かな 10/5/19(水) 12:30 お礼
【65416】Re:処理速度について Hirofumi 10/5/19(水) 13:31 発言
【65435】Re:処理速度について かな 10/5/20(木) 14:03 発言
【65439】Re:処理速度について Hirofumi 10/5/20(木) 15:49 回答
【65411】Re:処理速度について mura 10/5/19(水) 10:34 回答
【65414】Re:処理速度について かな 10/5/19(水) 12:32 お礼

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