たまに「あれ?これってやってよかったんだっけ?」となってしまう、
ちょっと特殊な処理の結果を書き残しておきます。
例えば「インデックスが2~5の配列」を全然違う番地のセル範囲に吐き出してみます。
◇ ソースコード
Dim Arr(2 To 5) Arr(2) = 1 Arr(3) = 2 Arr(4) = 3 Arr(5) = 4 Range("C2").Resize(1, 4).Value = Arr Range("A3").Resize(4, 1).Value = WorksheetFunction.Transpose(Arr)
◇ 実行結果
問題なく動いていますね。
続いて同じように二次元配列を吐き出してみます。
◇ ソースコード
Dim Arr(2 To 5, -2 To 1) Arr(2, -2) = 1 Arr(3, -1) = 2 Arr(4, 0) = 3 Arr(5, 1) = 4 Range("C3").Resize(4, 4).Value = Arr
◇ 実行結果
こちらも問題なく動いています。
-2~1という無茶な定義でも全く問題ありません。
ということで、インデックスが0や1で始まらない配列であっても、
行数・列数が一致していれば通常と同じコードでセルに出力ができます。
よくよく考えれば、
Dim Arr(0 To 3, 0 To 3)
この4×4の配列を
Range("J10").Resize(4, 4) = Arr
このコードで出力できているわけなので、
当然と言えば当然かもしれません。
「いや当然でしょ。いまさら何を言ってるの?」
と思った方もいらっしゃるとは思いますが、
当然なことほどたまにわからなくなる気もしますので、
分からなくなった(私のような)方向けに書き残して置きました。
何かのお役に立てば幸いです(´∀`)