Vba: 複数の区切り文字に基づいて文字列を分割する方法
VBA では、次の基本構文を使用して、複数の区切り文字に基づいて文字列を分割できます。
SubSplitString ()
Dim SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
newString = Replace(Range(" A " & i), " - ", " ")
SingleValue = Split(newString, " ")
For j = 1 To 3
Cells(i, j + 1).Value = SingleValue(j - 1)
Next j
Next i
End Sub
この特定の例では、各文字列内のハイフンまたはスペースに基づいて範囲A2:A7の各文字列を分割し、結果として得られる各文字列の要素を列 B、C、および D の隣接するセルに割り当てます。
注: このマクロは、まず各ハイフンをスペースに置き換えてから、スペースの位置に基づいて各文字列を分割します。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA で複数の区切り文字に基づいて文字列を分割する
Excel に次の名前のリストがあるとします。
ハイフンまたはスペースに基づいて各名前を分割し、結果として得られる各文字列の要素を新しいセルに割り当てたいとします。
これを行うには、次のマクロを作成できます。
SubSplitString ()
Dim SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
newString = Replace(Range(" A " & i), " - ", " ")
SingleValue = Split(newString, " ")
For j = 1 To 3
Cells(i, j + 1).Value = SingleValue(j - 1)
Next j
Next i
End Sub
このマクロを実行すると、次の出力が表示されます。
このマクロは、スペースとハイフンに基づいて列 A の各文字列を分割し、各文字列の個々のテキスト要素を列 B、C、および D に表示することに注意してください。
注 #1:この例ではハイフンとスペースに基づいて文字列を分割していますが、 Replace関数とSplit関数で区切り文字を指定することで、必要な区切り文字に基づいて文字列を分割できます。
注 #2 : VBA Split関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、VBA を使用して他の一般的なタスクを実行する方法について説明します。
VBA: 文字列内の文字の出現を数える方法
VBA: 文字列に別の文字列が含まれているかどうかを確認する方法
VBA: 特定のテキストを含むセルを数える方法