• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ある文字列を検索するボタンのつくりかた)

ある文字列を検索するボタンのつくりかた

このQ&Aのポイント
  • テキストファイルの内容を表示するボタンを作成しました。特定の文字列のみを抜き出す方法を教えてください。
  • 初心者でも簡単に実装できる方法を教えてください。
  • テキストボックスに表示するテキストファイルから特定の文字列を抜き出す方法を教えてください。

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

  • ベストアンサー
  • sorarisp
  • ベストアンサー率58% (7/12)
回答No.2

補足の回答です。 pos = InStr(1,RichTextBox1.Text,"bcd") If pos > 0 Then  RichTextBox1.Text = Mid$(RichTextBox1.Text,pos,Len("bcd")) End If strTextに"bcd"のみ抜き出します。 ある意味、 pos = InStr(1,RichTextBox1.Text,"bcd") If pos > 0 Then  RichTextBox1.Text = "bcd" End If でも同じ結果が返ります。

ahoojpn
質問者

お礼

"bcd"のみ拾えるようになりました。ありがとうございます。

ahoojpn
質問者

補足

"bcd"のみ表示できるようになったのはいいのですが、"bcd"文字列が複数回 出ているテキストファイルも1回分しか表示できません(つまり"bcd"があるか ないかはわかるのですが、何回表示されているかがわからない)。下の例の ように出来ないものでしょうか。 例. a"bcd"efg "bcd"xyz "bcd" "bcd" と書かれたテキスト      これを"bcd"のみ表示できるように設定したボタンを押す           ↓   "bcd"とテキストボックスに表示される           ↓   本当は "bcd" "bcd" bcd" "bcd" と表示したい(上の例では"bcd"が   4回出ているため) また、"bcd"が一度も出てこないテキストに対しては、テキストボックスに 何も表示がでないようにした上に、「"bcd"が見つかりません」と書かれた メッセージボックスを表示したいのですが、現状では元の文がそのまま 表示されてしまいます。If式を使うか、 If pos > 0 Then  RichTextBox1.Text = "bcd" の後に、"Else"で処理すればよいかとは思うのですが、これもよくわから ないので、あわせて教えていただけないでしょうか。

その他の回答 (1)

  • sorarisp
  • ベストアンサー率58% (7/12)
回答No.1

単純に、文字列から特定の文字列を抜き出すと考えてよいのでしょうか? 上の例で言うと、"abcdefg" → "aefg" のようにする。 というこで説明しますと、 InStrを使った方法。 pos = 1 Do  pos = InStr(pos,RichTextBox1.Text,"bcd")  If pos > 0 Then ' 見つからなければ0を返します   If pos = 1 Then    RichTextBox1.Text = Mid$(RichTextBox1.Text,pos + Len("bcd"))   ElseIf pos > Len(RichTextBox1.Text) - Len("bcd") Then    RichTextBox1.Text = Left$(RichTextBox1.Text,pos - 1)   Else    RichTextBox1.Text = Left$(RichTextBox1.Text,pos - 1) & Mid$(RichTextBox1.Text,pos + Len("bcd"))   End If  End If Loop while pos > 0 And pos < Len(RichTextBox1.Text) 試していないのでなんともいえませんがこれで出来るはずです。 それともう一つ。 Replaceを使った方法。 RichTextBox1.Text = Replace(RichTextBox1.Text,"bcd","") これでも出来ると思います。

ahoojpn
質問者

お礼

質問の意味と答えが喰い違ってしまいましたが、「InStrを使った方法。」で "aefg"を抜き出すことが出来ました。ありがとうございます。度々申し訳ない のですが、回答に対する補足のやり方も教えていただけないでしょうか。

ahoojpn
質問者

補足

質問の仕方が悪かったようで、すいません。 例.abcdefgと書かれたテキストに対してbcdのみ抜き出す   "abcdefg" → "bcd" のようにする。 という意味です。