この非常に単純な関数を使用します。
Function WriteArray() as Variant
Dim array(0 To 2)
array(0) = "A"
array(1) = "B"
array(2) = "C"
WriteArray = array
End Function
結果として Excel スプレッドシートに配列全体が表示されることを期待していましたが、そうではありません。最初の文字列しか取得できません。スプレッドシートに配列全体を表示するトリックがあることは知っていますが (式 + F2 + CTRL + SHIFT + ENTER でセルの範囲を選択することにより)、VBA ですべてを処理することをお勧めします。
Application.Caller 変数を使用して「Caller」範囲に直接書き込もうとしましたが、コードが壊れます。
助けてくれてどうもありがとう!
編集:これは私が使用しようとした別のコードです:
Function WriteArray() As Variant
Dim arr(0 To 2)
arr(0) = "A"
arr(1) = "B"
arr(2) = "C"
WriteArray = arr
Dim StartRow, i As Integer
For i = 0 To UBound(arr)
Range("A" & i).Value = arr(i)
Next
End Function
「Range("A" & i).Value = arr(i)」という行で中断されます。エクセルが壊れた?!