Excel VBA 質問スレ Part39 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0828デフォルトの名無しさん
2016/02/10(水) 21:06:36.31ID:QrO94O6C普通に指定している行が多すぎるんじゃない?
Function Test(o As Range) As String()
Const BatchWidth = 100 '一度に処理する行数
Dim S() As String
With o
t = .Row
b = .Rows.Count
l = .Column
r = .Columns.Count
End With
ShiftC = r - l + 1
ReDim S(1 To b - t + 1, 1 To ShiftC)
For i = t To b Step BatchWidth
sc = i + BatchWidth - 1
If b < sc Then bw = b Else bw = sc
x = Range(o.Cells(i, 1), o.Cells(bw, ShiftC))
For pr = i To bw
For pc = 1 To ShiftC
S(pr, pc) = x(pr - i + 1, pc)
Next
Next
Next
Test = S
End Function
こんな感じでVariant型配列よりも容量の小さい配列に分割処理して入れ込んでみるとかで解決しないかな。
■ このスレッドは過去ログ倉庫に格納されています