こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

文字中の特定文字の削除について

文字列の最初に(1)(2)(3)・・といった文字がある場合、それを削除したいと考えています。
Replace(Combo1.Text, "( * )", "") といったような書き方をしても動作しないですし、一般的にどのように記述されているのかご教授いただきたくお願いします。
ちなみにLikeを使用しようと試そうともしたのですが、残念ながらうまく動作するようには記述できませんでした。
よろしくお願いします。

投稿日時 - 2004-11-09 01:34:13

QNo.1076204

暇なときに回答ください

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

"("が文字列の最初でそのあとに")"があるとき、")"より後ろを取り出す。。

s=Combo1.Text
startPos=InStr(1,s,"(")
endPos=InStr(startPos+1,s,")")
If startPos=1 and endPos<>0 then
 s = Mid(s, endPos+1, Len(s)-endPos)
End If

投稿日時 - 2004-11-09 06:55:19

お礼

ありがとうございます。
(1)・・を削除することばかり考えおり、(1)・・以外のところを取り出すというのは、思いつきませんでした。
大変勉強になりました。感謝しております。

投稿日時 - 2004-11-09 17:11:09

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

>文字列の最初に(1)(2)(3)・・といった文字がある
文字列の最初の1文字目からに、あることが確実なら、なぜLikeを使う必要があるのでしょうか
s=Mid(Combo1.Text,4,Len(Combo1.Text)-3)
あるいは、MidBとLenBを使えば良いのでは。
あるいは「文字列の最初」は仮定できないケースですか。

投稿日時 - 2004-11-09 06:36:48

お礼

ご指導、ありがとうございます。
実は、ご指摘の通り、文字列の最初が必ず(1)・・ではじまるとは限りません。
そのため、まず、Likeを使用して、文字列の最初に(1)・・があるかどうかを判断して、あった場合には、左から三文字分を取り除こうなどと、試行錯誤していました。
いろいろ、考えていただき、ありがとうございました。感謝しております。

投稿日時 - 2004-11-09 15:01:02

ANo.1

Text1.Textの
(***)「何とかかんとか」

「何とかかんとか」
にする
面倒ですが、以下の手順でいけると思います。

Dim startPos, endPos, deleteStr
startPos = InStr(1, Text1.Text, "(")
endPos = InStr(startPos + 1, Text1.Text, ")")
deleteStr = Mid(Text1.Text, startPos, endPos - startPos + 1)
Text1.Text = Replace(Text1.Text, deleteStr, "", startPos, 1)

VB.NETからは、Regex.Replaceで簡単にできるのですが

投稿日時 - 2004-11-09 03:53:09

お礼

大変助かりました。
教えて頂いたように記述したら、うまく動作いたしました。ありがとうございました。
やはり、VB6.0では1行で記述するような方法はなく、いくつかの手順を踏まないといけないのですね。
勉強になりました。大変感謝しております。

投稿日時 - 2004-11-09 14:06:36

あなたにオススメの質問