どちらの処理がより高速であるのかを調べるため、以下の2つのVBAを試作致しました。
Sub Macroコピペ乱数()
'コピペ乱数
Sheets("Sheet4").Select
Range("A1:A99999").Formula = "=RAND()"
Columns("A").Value = Columns("A").Value
Range("B1").Select
End Sub
及び
Sub Macro繰り返し乱数()
'繰り返し乱数
Dim i As Long
Randomize
Sheets("Sheet4").Select
For i = 1 To 99999
Range("A" & i).Value = Rnd
Next i
Range("B1").Select
End Sub
処が、これらのVBAを実際に動作させ様としますと、どちらの場合においても「Microsoft Visual Basic」ダイアログボックスが開いて
「実行時エラー'1004':
'Range'メソッドは失敗しました:'_Global'オブジェクト」
と表示されてしまいます。
さりとて、
Sub Macroコピペ乱数()
'コピペ乱数
Sheets("Sheet4").Select
ActiveSheet.Range("A1:A99999").Formula = "=RAND()"
Columns("A").Value = Columns("A").Value
Range("B1").Select
End Sub
及び
Sub Macro繰り返し乱数()
'繰り返し乱数
Dim i As Long
Randomize
Sheets("Sheet4").Select
For i = 1 To 99999
Range("A" & i).Value = Rnd
Next i
Range("B1").Select
End Sub
或いは
Sub Macro繰り返し乱数()
'繰り返し乱数
Dim i As Long
Randomize
Sheets("Sheet4").Select
For i = 1 To 99999
Range(Cells(i, 1)).Value = Rnd
Next i
Range("B1").Select
End Sub
等としましても、今度は
「実行時エラー'1004':
アプリケーション定義またはオブジェクト定義のエラーです。」
となってしまいます。
どの部分がどの様に悪いのでしょうか?
そして、どの様に修正すれば良いのでしょうか?
尚、使用しておりますExcelのバージョンはExcel2010です。
↧