|
単純に
関数に引数を渡す話で(複数セル.Value)は配列になるというだけなんですけど。
Sub try()
With Sheets.Add.Range("a1:a3")
.Value = [{1;"";"a"}]
MsgBox "a1: " & TypeName(.Item(1).Value)
MsgBox "a2: " & TypeName(.Item(2).Value)
MsgBox "a3: " & TypeName(.Item(3).Value)
MsgBox "value: " & TypeName(.Value)
MsgBox "cells: " & TypeName(.Cells)
End With
End Sub
WorksheetFunctionの中身でどういう処理がされているかまでは解りませんが
=TRIM(" A ")
=TRIM(A1)
=TRIM(A1:A3)
少なくとも何でも受けれるようにVariant型になっているのでしょう。
そこで
.. = Application.Trim(.Value)
この場合、TRIM関数には配列Variant()が渡り
.. = Application.Trim(.Cells)
これはセル範囲Rangeが渡ります。
>Excel2000の場合、
>VBAでワークシート関数を使う場合..
『配列Variant()が渡り』の時には
その要素数に5,461個までという仕様上の制限があり、
セル範囲Range型を渡すと回避できる場合がある、という事です。
|
|