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