- 締切済み
文字列検索
テキストボックスに文字を入力しコマンドボタンを押すと、別に作成した検索用のシートにその文字があれば他のテキストボックスに「存在する」「存在しない」というように表示される様な事はできますでしょうか? VB初心者なのでできれば解りやすい表現でおねがいします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- maruru01
- ベストアンサー率51% (1179/2272)
>「RangeクラスのFindプロパティを取得できません」 なら、最初の変数の宣言を、 Dim answer As Variant にかえてみて下さい。
- maruru01
- ベストアンサー率51% (1179/2272)
>同一ファイルの他のシートです つまり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プロパティの引数を適当に変更して下さい。
補足
回答ありがとうございます。 やってみましたが「RangeクラスのFindプロパティを取得できません」 とのエラーが表示されてしまいます。 デバックをクリックすると下記に問題があると表示されるのですがわかりますでしょうか? Set answer = Worksheets(1).Range("A1:A5").Find(TextBox1.Text)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 検索用のシートというのはExcelファイルのことでしょうか。 そうなら、ExcelVBAの話でしょうか。それとも、VBで外部のExcelファイルを操作するということでしょうか。 ちなみに、どちらにしても質問の内容はおそらく出来ますが。
補足
説明不足ですみません。同一ファイルの他のシートです。宜しくお願します。
補足
すいません。できないようです。 また、何もテキストボックスに入力せずコマンドボタンを押すとエラーになってしまいます。でも、ありがとうございました!