- ベストアンサー
VBAで改行コードを判定したい
文字列の中にある改行を判定したいのですがどうすればいいのでしょうか? イメージ if mid(文字列,i,1)=改行 then 処理 end if iを加算していって1文字ずつ判定していく処理です。 改行をどう表現するのかがわかりません。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VBAで文字列から文字列を判断するなら InStr関数を使いましょう dim i as integer, j as integer, k as integer dim s as string s = "1234" & vbCr &"567" & vbLF & "890" & vbCrLf i = InStr( s, vbCr) j = InStr( s, vbLF ) k = InStr( s, vbCrLf ) といった具合で iは5 jは9 kは13 になります 見つかった際にはその文字位置の先頭、見つからなかった場合0となります
その他の回答 (2)
- redfox63
- ベストアンサー率71% (1325/1856)
改行が複数個あるのでしたらInStrの引数を工夫すれば可能ですよ InStrは最初にどこから検索を開始するのかといった引数があります dim n as integer, m as integer dim s as string s = "123" & vbcrlf & "456" & vbcrlf & "7890" &vbcrlf といった具合でしたら n = InStr( s, vbcrlf) とすると 123の後ろを見つけます m = InStr( n+1, s, vbcrlf ) とすると 456の後ろを見つけることが出来ます
- bin-chan
- ベストアンサー率33% (1403/4213)
vbCRとvbLFとvbCRLFがあるハズ。 文字列内の区切り文字指定して分割するSplit関数を利用すると簡単です dim str文字列 as string dim strArrey() as string dim nArrey as long str文字列=<何かが入っているとします> strArrey()=split(str文字列, vbCR) nArrey=Ubound(strArrey()) if nArrey>1 then msgbox "CRで区切られている" strArrey()=split(str文字列, vbLF) nArrey=Ubound(strArrey()) if nArrey>1 then msgbox "LFで区切られている" strArrey()=split(str文字列, vbCRLF) nArrey=Ubound(strArrey()) if nArrey>1 then msgbox "CRLFで(でも?)区切られている"
お礼
ありがとうございました。 文字列を上記コードを入力してみたところ、3つのメッセージすべてがでました。
お礼
instrを使ってうまく組むことができました。 ありがとうございました。
補足
改行が複数あるのでif文で判定したいのですが無理でしょうか?