|
UO3さん
検証ありがとうございます.
Excel2003のロジックの可能性はありますよね.
ちなみに,セルに値をいれてシート上で関数を使うのには
問題ありません.
とりあえず,他の方法を検討したいと思います.
ありがとうございました.
▼UO3 さん:
>▼tomr25 さん:
>
>こちら、2003ですが、同様になります。
>(以下のTest1はOK,Test2はエラー。)
>まぁ、配列は領域と同じと考えた時、少なくともxl2003の行数で
>65537は、ありえないのでエラーとなるのも、うなずけるのですが
>これが2010でも同じということですね。
>
>う〜ん・・・WorkSheetFunctionクラスのMax関数の中身が
>2010でも、2003のロジックのままとか・・・?
>シート上でA列に、65537行分、値をいれて、=Max(A1:A65537) とやると
>どうなりますか?
>
>Sub Test1()
> Dim v(1 To 65536) As Single
> Dim i As Long
> For i = 1 To UBound(v)
> v(i) = i
> Next
>
> MsgBox WorksheetFunction.Max(v)
>
>End Sub
>
>Sub Test2()
> Dim v(1 To 65537) As Single
> Dim i As Long
> For i = 1 To UBound(v)
> v(i) = i
> Next
>
> MsgBox WorksheetFunction.Max(v)
>
>End Sub
>
>>Excel2010を使用しています.
>>マクロにて,single配列にデータを格納してworksheetfunctionでmaxやmodeを使うと,配列の要素数が65535を超えると「実行時エラー13,型が一致しません」というエラーがでます.
>>できれば関数を使いたいのですが,良い対応手段があれば教えてください.
|
|