| 
    
     |  | 単純に 関数に引数を渡す話で(複数セル.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型を渡すと回避できる場合がある、という事です。
 
 |  |