|
>セルのバックカラーを色塗りしていくのと、
>塗りつぶしの代わりに、セルに記号を入れていくのと、処理的には
>どちらが、早いのでしょうか?
配列にてセルに記号を入れる方法が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オブジェクトの部分を
全て配列に直せば相当早くなるでしょう。
配列での処理はメモリへの直接アクセスなので最速です。
|
|