【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関数を利用することができます。

《VBA中級者向けの本》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。

created by Rinker
技術評論社
¥3,608 (2022/05/20 10:38:41時点 Amazon調べ-詳細)

自分で作るのが難しいと感じたら、プロに作ってもらう手もあります。
こちらの記事でおすすめのプログラマーを紹介しています

《IT未経験-特化型サービス》



他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい