• 締切済み

文字列検索

テキストボックスに文字を入力しコマンドボタンを押すと、別に作成した検索用のシートにその文字があれば他のテキストボックスに「存在する」「存在しない」というように表示される様な事はできますでしょうか? VB初心者なのでできれば解りやすい表現でおねがいします。

みんなの回答

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

>「RangeクラスのFindプロパティを取得できません」 なら、最初の変数の宣言を、 Dim answer As Variant にかえてみて下さい。

taknakano
質問者

補足

すいません。できないようです。 また、何もテキストボックスに入力せずコマンドボタンを押すとエラーになってしまいます。でも、ありがとうございました!

すると、全ての回答が全文表示されます。
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

>同一ファイルの他のシートです つまりExcelVBAですね。 検索文字列用のテキストボックスを[TextBox1]、結果表示用のテキストボックスを[TextBox2]、コマンドボタンを[CommandButton1]とします。 コマンドボタンのクリックイベントに、以下のように記述します。 Private Sub CommandButton1_Click()   Dim answer As Range   If TextBox1.Text = "" Then     MsgBox "検索文字列を入力して下さい。"     TextBox1.SetFocus     Exit Sub   End If   Set answer = Worksheets(1).Range("A1:A5").Find(TextBox1.Text)   If Not answer Is Nothing Then     TextBox2.Text = "存在する"     Set answer = Nothing   Else     TextBox2.Text = "存在しない"   End If End Sub なお、検索対象のセル範囲は、とりあえず一番左のシートのA1~A5としました。 シート名を指定する場合は、 Worksheets("シート名") のように""で括って記述して下さい。 セル範囲もRangeプロパティの引数を適当に変更して下さい。

taknakano
質問者

補足

回答ありがとうございます。 やってみましたが「RangeクラスのFindプロパティを取得できません」 とのエラーが表示されてしまいます。 デバックをクリックすると下記に問題があると表示されるのですがわかりますでしょうか? Set answer = Worksheets(1).Range("A1:A5").Find(TextBox1.Text)

すると、全ての回答が全文表示されます。
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 検索用のシートというのはExcelファイルのことでしょうか。 そうなら、ExcelVBAの話でしょうか。それとも、VBで外部のExcelファイルを操作するということでしょうか。 ちなみに、どちらにしても質問の内容はおそらく出来ますが。

taknakano
質問者

補足

説明不足ですみません。同一ファイルの他のシートです。宜しくお願します。

すると、全ての回答が全文表示されます。
このQ&Aのポイント
  • マイクロソフトonenoteと表示されて印刷できなくなったPX-1700fのエラー状態とは?
  • PX-1700fはパソコンからの印刷ができない状態になりました。その原因は画面に表示されたマイクロソフトonenoteとの関係にあるのか?
  • EPSONのPX-1700fがエラー状態で、パソコンからの印刷ができなくなった。なぜマイクロソフトonenoteと表示された瞬間にエラー状態になってしまったのか?
回答を見る

専門家に質問してみよう