初期値を持つ配列を定義する場合、例えばJavaでは下記のように宣言が出来ます。
String[] sample = {"A", "B", "C"};
ではVBA(Excelマクロ)でこれをやろうとするとどうなるでしょうか?
Dim sample As Variant sample = Array("A", "B", "C")
このように、Array関数を利用することで似たようなことが出来るのですが、Array関数には欠点があります。 そう、Variant型で変数を定義する必要があるということです。 例えば、ごく自然に見える下記のコードはエラーになってしまいます。
Dim sample() As String sample = Array("A", "B", "C") '// ここでエラー発生(型が一致しません)
Variant型の使用が常に悪いということはありませんが、 明らかにStringの配列である変数をVariantで宣言しなければならないというのは、 可読性の観点からも好ましくありません。
かと言って下記のように一つずつ初期化していくのも面倒です。
Dim sample(3) As String sample(0) = "A" sample(1) = "B" sample(2) = "C"
こういう場合はSplit関数を使うとうまいこと行きます。
Dim sample() As String sample = Split("A,B,C", ",")
Split関数はString配列型の結果を返します。これを利用して初期化するというわけです。