プロが教える店舗&オフィスのセキュリティ対策術

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

よろしくお願いします。 

A 回答 (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となります

この回答への補足

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

補足日時:2008/02/20 00:04
    • good
    • 1
この回答へのお礼

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

お礼日時:2008/02/20 00:52

改行が複数個あるのでしたら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の後ろを見つけることが出来ます
    • good
    • 0

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で(でも?)区切られている"
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/02/20 00:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!