Page 410 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼セル内の文字列について検索 あみやき 02/11/29(金) 11:54 ┗Re:セル内の文字列について検索 こうちゃん 02/11/29(金) 12:02 ┗Re:セル内の文字列について検索 あみやき 02/11/29(金) 14:15 ┗もうすこし詳しく教えてください。 こうちゃん 02/11/29(金) 14:39 ┗お手間お掛けしてすみません。 あみやき 02/11/29(金) 15:04 ┗手間はいいのですが・・ こうちゃん 02/11/29(金) 16:13 ┗Re:手間はいいのですが・・ あみやき 02/11/29(金) 16:29 ─────────────────────────────────────── ■題名 : セル内の文字列について検索 ■名前 : あみやき ■日付 : 02/11/29(金) 11:54 -------------------------------------------------------------------------
いつも皆様にはお世話になっております。 文字列検索についての質問です。どなたかご指導くださいm(__)m ある範囲の例えばA列〜B列についてのセルについて、ある文字を検索をしたいのですが、そのセルの最後の文字(セルによって入っている文字数が異なる)が検索の文字列と一致するものを選びたいのですがどのような処理にすればよいのでしょうか? 誰か教えてくださいm(__)m お願いします。 |
あみやきさん、こんにちは >ある範囲の例えばA列〜B列についてのセルについて、ある文字を検索をしたいのですが、そのセルの最後の文字(セルによって入っている文字数が異なる)が検索の文字列と一致するものを選びたいのですがどのような処理にすればよいのでしょうか? >誰か教えてくださいm(__)m >お願いします。 検索文字列に"*検索したい文字列"を指定して検索してください。 以下は「末尾にcdeのつく文字列をA列〜B列で検索」をマクロ記録した例です。 Columns("A:B").Select Selection.Find(What:="*cde", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False).Activate |
こうちゃん さん、こんにちは 回答ありがとうございます。私は全く初心者のため、大変助かりました。 ありがとうございます。 しかし、他の文とどのようにつなげてよいのかわかりません。 教えてくださいm(__)mお願いします。 ちなみにそのままsubで挟んだら、オブジェクト変数またはwithブロック変数が設定されていません。というエラーメッセージがでてきました・・・。 よろしくお願いします。 >検索文字列に"*検索したい文字列"を指定して検索してください。 > >以下は「末尾にcdeのつく文字列をA列〜B列で検索」をマクロ記録した例です。 > Columns("A:B").Select > Selection.Find(What:="*cde", After:=ActiveCell, LookIn:=xlFormulas, _ > LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ > MatchCase:=False).Activate |
あみやきさん、こんにちは >しかし、他の文とどのようにつなげてよいのかわかりません。 他の文はどのようになっていますか?こちらではもっとわかりません。 検索のあと、何をするのでしょうか? 具体的に何をしたいのか、現在のコードはどうなっているのか教えていただけますか? #たとえばフォームのボタンを押したらテキストボックスの値が末尾につくセルのデータをメッセージボックスで表示するとか、Sheet1のA1セルの値が末尾につくセルをSheet2から検索して、Sheet3のA1セルから順番に書き出すとか・・ また、該当セルが複数あったらどうするかとかも具体的にお願いします。 できれば、データのサンプル等もあればもっといいですね。 |
こうちゃん さん、こんにちは >他の文はどのようになっていますか?こちらではもっとわかりません。 すいませんまだVBA始めたばかりなもので・・・。 それにしても低レベルすぎるのですが、 ただsubとsub endで挟んだだけでした・・・。 Sub 検索() Columns("A:B").Select Selection.Find(What:="*cde", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False).Activate End Sub >検索のあと、何をするのでしょうか? 検索あとには検索対象のものを別にテーブルを作り、その中にリストアップしたいと考えています。 こうちゃんさん、お手間をお掛けして申し訳ないです。 簡単に説明できる範囲でかまわないので、少し教えて頂けますか? 申し訳ないですm(__)m |
▼あみやき さん: >こうちゃん さん、こんにちは > >>他の文はどのようになっていますか?こちらではもっとわかりません。 >すいませんまだVBA始めたばかりなもので・・・。 >それにしても低レベルすぎるのですが、 >ただsubとsub endで挟んだだけでした・・・。 > >Sub 検索() >Columns("A:B").Select > Selection.Find(What:="*cde", After:=ActiveCell, LookIn:=xlFormulas, _ > LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ > MatchCase:=False).Activate > > >End Sub > >>検索のあと、何をするのでしょうか? > >検索あとには検索対象のものを別にテーブルを作り、その中にリストアップしたいと考えています。 > >こうちゃんさん、お手間をお掛けして申し訳ないです。 >簡単に説明できる範囲でかまわないので、少し教えて頂けますか? >申し訳ないですm(__)m もっと詳しく説明していただいたほうが、早道なのですが・・ 以下のモジュールは、アクティブなシートのA列とB列で末尾に"sa"がつくものを検索して、Sheet(2)のA1セルから下に書き出します。 標準モジュールにコピーペーストして、What:="*sa"を実際に検索したい文字列に変更して実行してみてください。 (該当データがかならず1個はあることを前提としていますので注意してね) Sub 検索() Dim FirstRow As Long Dim FirstColumn As Integer Dim i As Long 'AB列を選択 Columns("A:B").Select Cells(1, 1).Activate '最初の検索 Selection.Find(What:="*sa", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False).Activate '最初の位置を保存 FirstRow = ActiveCell.Row FirstColumn = ActiveCell.Column i = 0 '最初の位置に戻るまで検索してSheet(2)に書き込み Do i = i + 1 Sheets(2).Cells(i, 1).Value = ActiveCell.Value Selection.FindNext(After:=ActiveCell).Activate Loop While Not _ (ActiveCell.Row = FirstRow And ActiveCell.Column = FirstColumn) End Sub |
こうちゃん さん 本当にありがとうございましたm(__)m テストしてみた結果。無事できました。ありがとうございます すぐにでも解析して、早く一人前になれるよう頑張ります。 今後も分らないことが大いいと思いますので、よろしくお願いします。 ありがとうございましたm(__)m |