異なる文字列の比較を行い、一致した文字列を除外する方法はあるでしょうか?
dim str1 as string
dim str2 as string
str1 = "123456789"
str2 = "789"
上記のような設定で、str1内にstr2の文字数があるかを調べて、存在した場合は、
str1を”123456”に設定したいです。
いつもここでは教えてもらってばかりなので
初めて回答してみる・・・
Instr関数でいけるのではと。。。(^_^;)
例えばこんな感じで
Private Sub Command1_Click()
Dim str1 As String
Dim str2 As String
Dim str3 As String
Dim ICHI As Integer
str1 = Text1
str2 = Text2
ICHI = InStr(1, str1, str2, vbTextCompare)
If ICHI <> 0 Then
Text3 = Left$(str1, ICHI - 1)
End If
End Sub
ただ削除したいのであれば、Replace()が有効です。
例に従って記述しますと以下のようになります。
>dim str1 as string
>dim str2 as string
dim strAns as string '回答用変数
>str1 = "123456789"
>str2 = "789"
strAns = Replace(str1, str2, "")
strAnsの内容は"123456"になります。
この関数は置換関数です。例では対象となる文字列を""に置換しました。
考え方・使い方一つで関数はさまざまな効果を発揮します。
今後は色々試行錯誤してみてくださいな。
#VB6
str3 = Replace(str1, str2, "")
かぶった(汗)
ここって投稿の修正/削除ってできませんよね?
失礼しました。。。
ぽこ様、ぴろあき様、ファリンファリン様
即レスありがとうございます。
文字を引くという新しい関数があるかもと難しく考えてしまいました。
除外する文字がわかっているならば、REPLACEで空白に置換すればいいという
発想がすごいです!!
INSTR関数でもやり方次第でいろんな方法があるんだと思いました。
まだまだ初心者なので、いつもここに来て教えていただいてもらってばかりですが、
ぽこ様のように私でもわかるスレがあれば、意見してみたり、
ぴろあき様、ファリンファリン様のようにいろんな発想と知識を教えれるように
成長していければいいなと思いました。
今度はもう少し発想を逆転させて考えてみたいと思います。
それでも、多々ここに来てしまうと思いますが、また見かけましたらご教授お願い致します。
ありがとうございました。
ツイート | ![]() |