教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】Split関数で文字列を区切る方法を教えて!

f:id:m_kbou:20220101154637p:plain

 

 

構文

記述方法は以下の通りとなります。

Split(”[文字列]”,”[区切り文字]”)

[説明]:

文字列を指定した区切り文字で分割し、一次元配列で返します。

[文字列] 任意の文字列を記述します。
※「”」(ダブルクォーテーション)で囲みます。
[区切り文字] 分割する区切り文字を記述します。
※「”」(ダブルクォーテーション)で囲みます。

[記述例]:

Split("大山,落合,山本", ",")

 

使い方

使い方について具体的に説明します。

区切り文字が文字列内に存在する場合の分割

区切り文字が文字列内に存在する場合の分割について説明します。

[プログラミング例]:

Sub サンプル()

  Dim 配列 As Variant
  Dim 番号 As Long

  配列 = Split("大山,落合,山本", ",")

  For 番号 = 0 To 2
    MsgBox 配列(番号)
  Next

End Sub

「最初に変数:配列を定義します。次に"大山,落合,山本"の文字列を「,」(カンマ)の文字で分割し、変数:配列にセットします。最後にFor~Next文を使用して変数:配列の中身をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20220101155056p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20220101154950p:plain

②結果は以下の様に表示されます。最初に「大山」が、次に「落合」が、最後に「山本」がMsgBoxで表示されます。

f:id:m_kbou:20220101155012p:plain

f:id:m_kbou:20220101155023p:plain

f:id:m_kbou:20220101155035p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

区切り文字が文字列内に存在する場合の分割についての説明は以上です。

 

区切り文字が文字列内に存在しない場合の分割

区切り文字が文字列内に存在しない場合の分割について説明します。

[プログラミング例]:

Sub サンプル()

  Dim 配列 As Variant
  Dim 番号 As Long

  配列 = Split("大山,落合,山本", "/")

  For 番号 = 0 To 2
    MsgBox 配列(番号)
  Next

End Sub

「最初に変数:配列を定義します。次に"大山,落合,山本"の文字列を「/」(スラッシュ)の文字で分割し、変数:配列にセットします。最後にFor~Next文を使用して変数:配列の中身をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20220101161514p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20220101161531p:plain

②結果は以下の様に表示されます。最初に「大山,落合,山本」がMsgBoxで表示され、次にエラーメッセージが表示ます。(※区切り文字の「/」(スラッシュ)が文字列に含まれていないため、文字列が区切られずそのまま表示されました。また、分割ができなかったため、For~Nextでのループ処理でエラーになりました。)

f:id:m_kbou:20220101161546p:plain

f:id:m_kbou:20220101161555p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

区切り文字が文字列内に存在しない場合の分割についての説明は以上です。

 

プログラミング(サンプル)

プログラミング事例を紹介します。

 

おわりに

今回はSplit関数を使用した文字列を区切る方法について説明しました。テストデータやシュミレーションデータ等を作成する場合に有効活用できると思います。是非活用下さい。