• ベストアンサー

VBAで改行コードを判定したい

文字列の中にある改行を判定したいのですがどうすればいいのでしょうか? イメージ if mid(文字列,i,1)=改行 then 処理 end if iを加算していって1文字ずつ判定していく処理です。 改行をどう表現するのかがわかりません。 よろしくお願いします。 

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

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となります

mobitto
質問者

お礼

instrを使ってうまく組むことができました。 ありがとうございました。

mobitto
質問者

補足

改行が複数あるのでif文で判定したいのですが無理でしょうか?

その他の回答 (2)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

改行が複数個あるのでしたら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)
回答No.1

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で(でも?)区切られている"

mobitto
質問者

お礼

ありがとうございました。 文字列を上記コードを入力してみたところ、3つのメッセージすべてがでました。

関連するQ&A