「〜の間繰り返す」というのは
Do While ○○ = 条件
だと思うのですが、ある文字列に特定の文字がある間処理をするというのはどう書けばいいのでしょうか?
Do While ○○ = "あ"
だと、「○○の中身が"あ"なら繰り返す」となってしまうのはわかるのですが、今したい処理は、例「文字列Aに"あ"があるたびにその後ろにスペースを入れる」といった処理なので「このあいだはありがとう」だと「このあ いだはあ りがとう」といった風になりたいです。
Do While ○○ =
=のあとにどのように書いて「文字列に"あ"があるたび」を表現すればいいのでしょうか?
>今したい処理は、例「文字列Aに"あ"があるたびにその後ろにスペースを入れる」といった処理
頭が固すぎです。
Replace(文字列,"あ","あ ")
ははは。確かに硬いですね。初心者掲示板でそう言われるなら普通の質問掲示板に書き込まなくてよかった。
ありがとうございます。
Do While に Replace つけて動くっけか?
>コレハウィルスさん
Do〜Whileの後につけるのではなく、Replaceでそのまま文字を置換させてみてくださいっということですよ。
あえて、Do while を使ってやるならば・・・。
Dim blnRet As Boolean
Dim strBefore As String
Dim strAfter As String
Dim i As Integer
blnRet = True
strBefore = "このあいだはありがとう"
strAfter = ""
i = 0
Do While blnRet
i = i + 1
strAfter = strAfter & Mid$(strBefore, i, 1)
If Mid$(strBefore, i, 1) = "あ" Then
strAfter = strAfter & Space(1)
End If
If Len(strBefore) = i Then
blnRet = False
End If
Loop
MsgBox strAfter
かな?
正月ボケで、間違っていたらごめん
あぁ〜、ヤッパリ本調子じゃねぇ〜(;;)
--
Do While NOT(Len(strBefore) = i)
i = i + 1
strAfter = strAfter & Mid$(strBefore, i, 1)
If Mid$(strBefore, i, 1) = "あ" Then
strAfter = strAfter & Space(1)
End If
Loop
"あ"の後に必ず1つだけスペースを入れる場合は、
strData = Replace(strData, "あ", "あ" & Space(1))
Do
IntT = Len(strData)
strData = Replace(strData, "あ" & Space(2), "あ" & Space(1))
Loop While (Len(strData) <> IntT)
こんなことかな。
いろいろ参考になる意見ありがとうございます。
ここの掲示板は対応などが良いですね!!
ツイート | ![]() |