• ベストアンサー

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

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

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

  • ベストアンサー
回答No.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

oomiyaji
質問者

お礼

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

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

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

oomiyaji
質問者

お礼

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

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.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で簡単にできるのですが

oomiyaji
質問者

お礼

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

関連するQ&A

専門家に質問してみよう