XL2000: カスタム関数で 5,461 要素より大きな配列を返すとエラー「#VALUE!」! マクロの実行後のエラー
…と言う事のようです。
狭い範囲を与えた場合には正常動作するのに、範囲を広げるとエラーが出るのに気付いて、いろいろな範囲を与えながら試していたら、5,461行目を超えた所でエラーが出たので、「5461 excel」でググったら上記サイトに辿り着きました。
Sub HowToUse()
[a1:b5461].Select
'[a1:b5462].Selectだと型不一致エラーが出る
t = Timer
DecreaseRight(Selection).Select
Application.StatusBar = _
"処理時間 " & Timer - t & " 秒"
End Sub
Function DecreaseRight(a1 As Range) As Range
With a1
r1 = .Row
c1 = .Column
r2 = .Rows.Count + r1 - 1
c2 = .Columns.Count + c1 - 1
End With
Set f = Application.WorksheetFunction
NewColumn = c1
For c = c2 To c1 Step -1
'Set x = Range(Cells(r1, c), Cells(r2, c))
Let x = Range(Cells(r1, c), Cells(r2, c))
If f.CountA(x) > 0 Then
NewColumn = c
Exit For
End If
Next c
Debug.Print TypeName(x)
'Set x だとRange、Let x だとVariant()
'Variant()の場合要素数5,462以上でエラーが出る(XL2K)
Set f = Nothing
Set DecreaseRight = _
Range(Cells(r1, c1), Cells(r2, NewColumn))
End Function
まぁ、いつまでExcel2000使ってるつもりだよ!と言う話なんですけどねw。
0 件のコメント:
コメントを投稿