動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2410(ビルド18112.20000クイック実行)ベータチャネル
VBAのSplit関数で区切り文字がない場合の挙動を疑問に感じる方は少なくないようです。
拙著『いちばんやさしいExcelVBAの教本』でも多用している、VBE(Visual Basic Editor)のローカルウィンドウを使って、Split関数がどのような配列を返すのか目視確認しておくことをおすすめします。
[スポンサードリンク]
区切り文字が存在する場合のSplit関数の挙動
まず、区切り文字が存在する場合のSplit関数の挙動を確認しておきましょう。
以下のSubプロシージャを実行して、Stopステートメントで中断したら、ローカルウィンドウを開いて、配列変数arrの中身を覗いてください。
Sub Split関数の挙動を確認する()
Const TXT_ORG = "ABCDE.xyz"
Dim arr() As String
arr = Split(TXT_ORG, ".")
Stop
End Sub
Const TXT_ORG = "ABCDE.xyz"
Dim arr() As String
arr = Split(TXT_ORG, ".")
Stop
End Sub
Split関数の第1引数に指定した文字列「ABCDE.xzy」が、第2引数に指定した「.」で分割されて「ABCDE」と「xyz」の2つの要素を含む配列になっている様子を、下図のように確認できます。
区切り文字がない場合のSplit関数の挙動
つづいて、定数TXT_ORGの値から「.」を削除し「ABCDExyz」にしてから、もう一度実行してください。
今度は、下図のような状態になります。
Split関数の第2引数に指定された区切り文字「.」が元の文字列にないために、元の文字列「ABCDExyz」がそのまま1つの要素として含まれる配列が返されています。
[スポンサードリンク]
Home » エクセルマクロ・Excel VBAの使い方 » 配列 » VBAのSplit関数で区切り文字がない場合の挙動