|
セルを選択するのと選択しないのと速度差。
test3は特殊ですが。
速いPCをお使いでしたら、10000にしてみてください。
↓注)せいぜい15000まで、それ以上だと配列で問題があるかも。
Const Cnt As Long = 5000
Sub test1()
Dim i As Long
'↓のコードのコメントを外したのも試してみてください。
Application.ScreenUpdating = False
stt = Now()
For i = 1 To Cnt Step 2
Sheets("Sheet1").Select
Cells(i, 1).Select
ActiveCell.Value = i
Sheets("Sheet2").Select
Cells(i + 1, 2).Select
ActiveCell.Value = i + 1
Next
Sheets("Sheet1").Select
Range("C1").Select
ActiveCell.Value = Format(Now() - stt, "hh:mm:ss")
Application.ScreenUpdating = True
MsgBox "終了"
End Sub
Sub test2()
Dim i As Long
stt = Now()
For i = 1 To Cnt Step 2
Sheets("Sheet1").Cells(i, 1).Value = i
Sheets("Sheet2").Cells(i + 1, 2).Value = i + 1
Next
Sheets("Sheet1").Range("D1").Value = Format(Now() - stt, "hh:mm:ss")
MsgBox "終了"
End Sub
Sub test3()
Dim i As Long, tb1(1 To Cnt, 1 To 1) As Variant, tb2(1 To Cnt, 1 To 1) As Variant
stt = Now()
For i = 1 To Cnt Step 2
tb1(i, 1) = i
tb2(i + 1, 1) = i + 1
Next
Sheets("Sheet1").Range("A1").Resize(Cnt).Value = tb1
Sheets("Sheet2").Range("B1").Resize(Cnt).Value = tb2
Erase tb1, tb2
Sheets("Sheet1").Range("E1").Value = Format(Now() - stt, "hh:mm:ss")
MsgBox "終了"
End Sub
|
|