このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】Split関数で「型が一致しません」のエラーが出た時の対処法

2023年1月13日

型が一致しません
型が一致しません

Split関数を使う時、「型が一致しません」のエラーが出ることがあります。

変数 = Split(文字列, 区切り文字)

このエラーが出るのは、左側の変数の型が間違っているからです。

エラーが出る例とエラーが出ない例のそれぞれを紹介するので確認してみてください。

VBAが難しいと感じたら
ココナラでVBAの開発請負を行っています。
お気軽にご相談ください。

エラーが出る例

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の開発請負を行っています。
お気軽にご相談ください。

VBA

Posted by やろまい