• ベストアンサー

ユーザーが入力したテキストをシートから検索する方法

エクセル2003でマクロの勉強をしています ユーザーフォームを作成し、その中にテキストボックスを 作りました。そのテキストボックスの中に文字を入力 させて、それをシートから検索させたいのですが Cells.Find(What="") ""に何を書いたらいいのかさっぱりわかりません。 ご存知の方、教えてください。

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

  • ベストアンサー
回答No.1

Cells.Find(What="")   ↓ Cells.Find(What=:"検索する文字定数") または Cells.Find(What=:検索する文字を入れた変数名) テキストボックスから入力した値を入れる変数の 名前を指定すればいいです。

kenken0
質問者

補足

Sub 検索() A = TextBox1 Cells.Find(What:=A).Activate End Sub こんな感じで書いてみたんですが・・・ なぜか検索されず左上のセルがアクティブになります。。 さっぱりです、。。

その他の回答 (2)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

こんにちは。KenKen_SP です。 Private Sub CommandButton1_Click()   Cells.Find( _     What:=Me.TextBox1.Text, _     LookIn:=xlValues, _     LookAt:=xlWhole, _     MatchByte:=False).Activate End Sub Find メソッドは次の注意点があります。これは手動で[検索と置換 ダイアログ]を設定したものでも、VBA の Findメソッド実行時に、 その設定が継承されていますので、明示的に設定してやる必要があ ります。 【Excel VBA ヘルプより引用】 引数 LookIn、LookAt、SearchOrder、および MatchByte の設定は、 このメソッドが使われるたびに保存されます。次にこのメソッドを 使うときに、これらの引数の指定を省略すると、保存された設定が 使われます。

kenken0
質問者

補足

すみません、テキストボックスがどこにあるか指定するのを忘れてました・・。無事解決しました^^ところで、アクティブセルのひとつ右をアクティブにするってどうやったらいいかご存知の方いらっしゃいますか??

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

Excel2000ですが、UserFormにTextBox1とCommandButton1を置いて、 CommandButtonのClickイベントに#1さんへの補足と同様のコードを 書いて実行したら動きましたけど、、、 Private Sub CommandButton1_Click()   A = TextBox1   Cells.Find(What:=A).Activate End Sub

kenken0
質問者

補足

動くことは動きますけどちゃんと検索されていません・・。