【VBA】文字列のパース(分割)をSplit関数で行う方法
今回は文字列のパース(分割)をSplit関数で行う方法を紹介します。
スペースやピリオドなどの記号で繋がれた文字列なら、Split関数で簡単にパースをすることができます。
もし、Instr関数で頑張っていたらやり方を覚えてみてください。
文字列のパース(分割)をSplit関数で行う方法
パースを行う例として、IPアドレスをピリオドで分割するコードを紹介します。
Sub ParseIpAddress()
Const STR_IP_ADDRESS = "192.168.0.10"
Dim strParsed() As String
'IPアドレスをピリオドでパース(分割)
strParsed = Split(STR_IP_ADDRESS , ".")
Debug.Print strParsed(0) '192
Debug.Print strParsed(1) '168
Debug.Print strParsed(2) '0
Debug.Print strParsed(3) '10
End Sub
サンプルコードではSplit関数を使って、"192.168.0.10″をピリオドで分割しています。
Split関数は文字列を2つ目の引数(今回はピリオド)で分割して、1次元配列で返します。
そのため、ピリオドとピリオドの間といった文字列を簡単に取得できます。
'4つ目の値を取得
Debug.Print Split(STR_IP_ADDRESS , ".")(3) '10
こんな風に特定の位置の文字列をいきなり取得することもできます。
例としたIPアドレス以外にも氏名の姓と名をスペースで分割するといった使い方もできます。
意外と応用範囲が広いので、文字列を分解したいと思ったときはSplit関数が使えないか検討してみてください。
関連記事
Split関数の返り値を受け取る変数はVariant型かString型の配列にする必要があります。