目次
経緯
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時から", "学校グラウンド"}
という配列が生成されます。
応用例:メール文に挿入する
上記の変数 kind
や dateValue
を使って、メール文のテンプレートに挿入することも可能です。
たとえば MailBody = kind & "の予定は" & dateValue & "です"
のような形で文字列を組み立てられます。
まとめ
Split()
関数を使うことで、1つのセルに入力された複数の情報を簡単に分割して取得できます。
データをメール本文に差し込んだり、別セルに転記したりする処理にも活用でき、業務の自動化に非常に便利です。
最後までお読みいただきありがとうございました。