- 163 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:48:59 ]
- 1万件Union、素人なりにがんばってみますた。うちのネットブックで6秒です。Core2のデスクトップなら2、3秒でしょう。
掲示板の行数制限とかあるんで配列の大きさとループの回数を定数にしたんで汎用性ゼロです。 Declare Function timeGetTime Lib "winmm.dll" () As Long Sub aaa() T1 = timeGetTime() ScreenUpdating = False Dim a(270) As String Dim si As Integer Dim s As String For i = 1 To 10000 w = "A" & (i * 6 - 3) If Len(s & w) <= 255 Then s = s & w & "," Else a(si) = Left(s, Len(s) - 1) si = si + 1 s = w & "," End If Next a(si) = Left(s, Len(s) - 1) Set r = Range(a(0)) For i = 1 To 233 Step 29 Set r = Union(r, Range(a(i)), Range(a(i + 1)), Range(a(i + 2)), Range(a(i + 3)), Range(a(i + 4)), Range(a(i + 5)), Range(a(i + 6)), Range(a(i + 7)), Range(a(i + 8)), Range(a(i + 9)), Range(a(i + 10)), _ Range(a(i + 11)), Range(a(i + 12)), Range(a(i + 13)), Range(a(i + 14)), Range(a(i + 15)), Range(a(i + 16)), Range(a(i + 17)), Range(a(i + 18)), Range(a(i + 19)), Range(a(i + 20)), Range(a(i + 21)), _ Range(a(i + 22)), Range(a(i + 23)), Range(a(i + 24)), Range(a(i + 25)), Range(a(i + 26)), Range(a(i + 27)), Range(a(i + 28))) Next Set r = Union(r, Range(a(262)), Range(a(263)), Range(a(264)), Range(a(265)), Range(a(266)), Range(a(267)), Range(a(268)), Range(a(269)), Range(a(270))) Cells(1, 2) = ((timeGetTime() - T1) / 1000) & "秒" r.Value = "うにお" '念のためテストデータ書き込み ScreenUpdating = True End Sub
|

|