【VBA】Split関数で「型が一致しません」のエラーが出た時の対処法
Split関数を使う時、「型が一致しません」のエラーが出ることがあります。
変数 = Split(文字列, 区切り文字)
このエラーが出るのは、左側の変数の型が間違っているからです。
エラーが出る例とエラーが出ない例のそれぞれを紹介するので確認してみてください。
エラーが出る例
Sub NG_Sample()
'Split関数でエラーとなる例
Dim arr As String 'String型で宣言
arr = Split("A,B,C,D,E", ",")
End Sub
このプログラムを実行すると「型が一致しません」のエラーが発生します。
エラーが出る理由
エラーが発生するのは、変数arrの型がString型となっているためです。
Split関数は1次元配列を返します。
それに対応するため、変数arrもVariant型(※)にしておく必要があります。
※String型の配列変数でもエラーは起きませんが、シンプルなVariant型を推奨します。
Split 関数
指定された数のサブ文字列が含まれる 0 ベースの 1 次元配列を返します。
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/split-function
エラーが出ない例
Sub OK_Sample()
Dim arr As Variant 'Variant型で宣言
arr = Split("A,B,C,D,E", ",")
End Sub
このように変数arrをVariant型、もしくはString型の配列とすればエラーを起こすことなく、Split関数を利用することができます。