読者です 読者をやめる 読者になる 読者になる

文字列でのSplit

この前、仕事で

Dim hoge As String = "ab" & vbCrLf & "cd"
Dim hogehoge As String() = hoge.Split(vbCrLf)

みたいなコードを書いていたのですが、hogehoge(1)が"cd"にならない。
色々試して悩んだあげく、分かったことはString.Splitの引数はStringではなくCharであるということ。
そしてvbCrLfはStringであること。vbCrLfは要するにCR+LFなので2文字なんですね。
#vbCrLf.Lengthってやるとちゃんと"2"になります。
Option Strict Onにすると、vbCrLfはCharじゃないよって怒られます。
無理矢理、hoge.Split(CChar(vbCrLf))とかやると、CCharがvbCrLfの1文字目(つまりCr)を返してきて
CrでSplitされて、hogehoge(1)は"(Lf)cd"となります。


ちなみにこのことを社内SNSに書いたら、頭のいい人が教えてくれました。
文字列でのSplitはStrings.Splitでできるよと。

Strings.Split(hoge,vbCrLf)

みたいな感じで使います。