- ベストアンサー
文字中の特定文字の削除について
文字列の最初に(1)(2)(3)・・といった文字がある場合、それを削除したいと考えています。 Replace(Combo1.Text, "( * )", "") といったような書き方をしても動作しないですし、一般的にどのように記述されているのかご教授いただきたくお願いします。 ちなみにLikeを使用しようと試そうともしたのですが、残念ながらうまく動作するようには記述できませんでした。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
"("が文字列の最初でそのあとに")"があるとき、")"より後ろを取り出す。。 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
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
>文字列の最初に(1)(2)(3)・・といった文字がある 文字列の最初の1文字目からに、あることが確実なら、なぜLikeを使う必要があるのでしょうか s=Mid(Combo1.Text,4,Len(Combo1.Text)-3) あるいは、MidBとLenBを使えば良いのでは。 あるいは「文字列の最初」は仮定できないケースですか。
お礼
ご指導、ありがとうございます。 実は、ご指摘の通り、文字列の最初が必ず(1)・・ではじまるとは限りません。 そのため、まず、Likeを使用して、文字列の最初に(1)・・があるかどうかを判断して、あった場合には、左から三文字分を取り除こうなどと、試行錯誤していました。 いろいろ、考えていただき、ありがとうございました。感謝しております。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
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で簡単にできるのですが
お礼
大変助かりました。 教えて頂いたように記述したら、うまく動作いたしました。ありがとうございました。 やはり、VB6.0では1行で記述するような方法はなく、いくつかの手順を踏まないといけないのですね。 勉強になりました。大変感謝しております。
お礼
ありがとうございます。 (1)・・を削除することばかり考えおり、(1)・・以外のところを取り出すというのは、思いつきませんでした。 大変勉強になりました。感謝しております。