Page 48 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼.Findの使い方について 123 02/9/6(金) 17:31 ┗Re:.Findの使い方について Taka-mk2 02/9/6(金) 17:53 ┗解決です 123 02/9/6(金) 19:39 ┗Re:解決です Taka-mk2 02/9/6(金) 21:25 ┣そうなんです 123 02/9/7(土) 1:55 ┗Re:解決です 123 02/9/9(月) 10:41 ┗Re:解決です Taka-mk2 02/9/9(月) 10:45 ┗Re:解決です(○) 123 02/9/9(月) 11:29 ─────────────────────────────────────── ■題名 : .Findの使い方について ■名前 : 123 ■日付 : 02/9/6(金) 17:31 -------------------------------------------------------------------------
TextBox1に6桁の番号を入力し、 そのTextBox1をExitする時に(またはEnter) その6桁の番号をシート内で検索して、 あった場合は、そのセルをアクティブにしたいのですが 悪戦苦闘しています。 お助けくださいませ。 |
▼123 さん: 東京は雨です! こんばんは。 以下のような感じではどうでしょうか? テキストボックスは、シートにそのまま貼り付けました。 検索範囲は、A1からA26です。 Private Sub TextBox1_LostFocus() Dim strTest As String Dim Find As Range On Error GoTo TextBox1_LostFocus_ERR: strTest = TextBox1.Value With ActiveSheet Set Find = .Range(.Cells(1, 1), .Cells(26, 1)).Find(strTest) If Find Is Nothing Then Exit Sub Find.Activate End With Exit Sub TextBox1_LostFocus_ERR: MsgBox Err.Description End Sub いじょ、参考になれば。 |
▼Taka-mk2 さん: こんばんは。 ありがとうございました。 解決しました。 ただ、 ユーザーフォーム上にTextBoxを作ったからなのか ERRのメッセージが表示されませんでした。 ⇒ LostFocus()の部分を Exit()に変えました。 因みに、検索結果で該当がない場合にメッセージBOX を表示したい時は以下のコードのどこを直せばよいのでしょうか。 いろいろやってみましたが、うまくいきませんでした。 宜しくお願いいたします。 >Private Sub TextBox1_LostFocus() > Dim strTest As String > Dim Find As Range > > On Error GoTo TextBox1_LostFocus_ERR: > > strTest = TextBox1.Value > > With ActiveSheet > Set Find = .Range(.Cells(1, 1), .Cells(26, 1)).Find(strTest) > If Find Is Nothing Then Exit Sub > Find.Activate > End With > > Exit Sub > >TextBox1_LostFocus_ERR: > MsgBox Err.Description >End Sub |
▼123 さん: こんばんは! 夕飯時に雨に降られてしまいました・・・^^; >因みに、検索結果で該当がない場合にメッセージBOX >を表示したい時は以下のコードのどこを直せばよいのでしょうか。 すいません^^; これは、 If Find Is Nothing Then Exit Sub の部分を変えることで出来ます。 この部分を、 If Find Is Nothing Then msgbox "Not Found!",vbinformation or vbokonly end if とすると、出てきます。 FindがNothingの時というのが、If Find Is Nothing Thenです。 見つかっているときは、Findに見つかった範囲のRangeが返されるので、 Nothingにはなりませんー。 いじょ、参考にしてください。 って、もとはUserFormから検索していたのでしょうか? |
▼Taka-mk2 さん: >って、もとはUserFormから検索していたのでしょうか? そうなんです。 UserFormで全てをやっています。 説明不足ですみませんでした。 早速やってみたいのですが、 会社 休みなもんで 月曜日に会社行ったら やってみます。 いろいろ ありがとうございます。 |
▼Taka-mk2 さん: こんにちは 会社に来て やっています。 今 以下のコードでやってみましたが、 Find is Notingの場合、メッセージは出るのですが、 その後の処理でディバックが出てしまいます。 どうぞ お助けください。 Private Sub コマンドボタン1._Click() Dim strTest As String Dim Find As Range strTest = T_検索氏名.Value With ActiveSheet Set Find = .Range(.Cells(1, 2), .Cells(26, 2)).Find(strTest) If Find Is Nothing Then MsgBox "Not Found!", vbInformation Or vbOKOnly End If Find.Activate Cells(ActiveCell.Row, 1).Select T_個人番号.Value = ActiveCell.Value End With End Sub |
▼123 さん: こんにちは! すみません、ポカミスです。←この人には多いです。 msgboxの次の行に、Exit Subを付け加えてください。 これがないと、プロシージャからでないので、Find.Activateに いってしまい、エラーになりますね。 >Private Sub コマンドボタン1._Click() > Dim strTest As String > Dim Find As Range > > strTest = T_検索氏名.Value > > With ActiveSheet > > Set Find = .Range(.Cells(1, 2), .Cells(26, 2)).Find(strTest) > If Find Is Nothing Then > MsgBox "Not Found!", vbInformation Or vbOKOnly Exit Sub > End If > Find.Activate > > Cells(ActiveCell.Row, 1).Select > T_個人番号.Value = ActiveCell.Value > > End With > > >End Sub |
▼Taka-mk2 さん: こんにちは! 今度こそ解決です。 ほんと ありがとうございました。 もう少し 基本を勉強します。 |