【VBA】Split関数で文字列を分割して値を取り出す方法|1行のセルから複数の情報を取得する基本構文

目次

経緯

Excelのセルに「サッカー、8月1日、8時から、学校グラウンド」といった1行で複数の情報を含む文字列が入力されている場合、
それをVBAで個別に分解して使えるようにしたいと思い、今回その方法を学習しました。

調べてみると、Split関数を使えば簡単に分割・取得が可能だったため、その実装方法をまとめます。


使用する文字列と目的

セル A1 に以下のような文字列が入っているとします:

コピーする編集するサッカー、8月1日、8時から、学校グラウンド

これを以下のように分解して、それぞれの要素として取得したいと考えます:

  • 種目:サッカー
  • 日付:8月1日
  • 時間:8時から
  • 場所:学校グラウンド

実装コード(Split関数の使用例)

以下が、実際にVBAで実装したコードになります:

Sub SplitTextExample()

    Dim splitValues() As String
    Dim kind As String
    Dim dateValue As String
    Dim timeValue As String
    Dim location As String

    ' セルA1の値を「、」で分割
    splitValues = Split(Range("A1").Value, "、")

    ' 分割された値を変数に格納
    kind = splitValues(0)       ' 種目
    dateValue = splitValues(1)  ' 日にち
    timeValue = splitValues(2)  ' 時間
    location = splitValues(3)   ' 場所

    ' 確認用にメッセージを表示
    MsgBox "種目:" & kind & vbCrLf & _
           "日付:" & dateValue & vbCrLf & _
           "時間:" & timeValue & vbCrLf & _
           "場所:" & location

End Sub

補足:Split関数の基本構文

vbaコピーする編集するSplit(文字列, 区切り文字)
  • Split("サッカー、8月1日、8時から、学校グラウンド", "、")
    {"サッカー", "8月1日", "8時から", "学校グラウンド"} という配列が生成されます。

応用例:メール文に挿入する

上記の変数 kinddateValue を使って、メール文のテンプレートに挿入することも可能です。
たとえば MailBody = kind & "の予定は" & dateValue & "です" のような形で文字列を組み立てられます。


まとめ

Split() 関数を使うことで、1つのセルに入力された複数の情報を簡単に分割して取得できます。
データをメール本文に差し込んだり、別セルに転記したりする処理にも活用でき、業務の自動化に非常に便利です。

最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次