• ベストアンサー

EXCEL VBAで文字列の検索とコピー

検索したい文字をinputboxで入力して、A列を検索して、検索文字を含むセルをコピーして、そのコピーしたデータを、別のシートに貼り付ける、次に該当したセルをさっきコピーしたデータの次の行に貼り付けて・・・。とデータが入力してある最終行までの繰り返し、をやりたいのですが、ご指導の程、説明が下手ですが宜しくお願いします!

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 ご質問のコードは、ヘルプのFind メソッドを調べれば、ほとんどそっくり載っていますので、そちらを見ていただければよいのです。ですから、誰が書いても、同じようなパターンになるかと思います。人によって違うのは、InputBox の使い方ぐらいかと思います。 ただし、Find メソッドの引数は、ひじょうに曲者です。必要に応じて、なるべく省略しないで、入れることがポイントです。MatchCase 大文字・小文字を区別するオプション。MatchByte 2バイト文字と1バイト文字を区別しないオプションなども、時には必要です。 '<なるべく標準モジュールでお使いください> '-------------------------------------------------- Sub Sample1()  Dim myFind As Variant  Dim myfRow As Long, c As Range  Dim CopySh As Worksheet  Dim i As Long  '==========設定====================  'コピー先シート  Set CopySh = Worksheets("Sheet2")  'コピー先のセルの最初の行  i = 1  '==================================  myFind = Application.InputBox("検索文字を入力してください", Type:=2)  If VarType(myFind) = vbBoolean Or myFind = "" Then Exit Sub    With Worksheets("Sheet1").Columns(1)   Set c = .Find(myFind, LookIn:=xlValues, LookAt:=xlWhole)   If Not c Is Nothing Then    myfRow = c.Row    Do     c.Copy CopySh.Cells(i, "A") 'コピー     Set c = .FindNext(c)     i = i + 1    Loop Until c Is Nothing Or myfRow = c.Row   End If  End With  Beep '終了の合図 End Sub

masaru3
質問者

お礼

早速のご回答有難うございました!! なんとか思うように出来そうです♪ 有難うございました。

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> A列を検索して、検索文字を含むセルをコピーして、 > そのコピーしたデータを、別のシートに貼り付ける、 > 次に該当したセルをさっきコピーしたデータの次の行に貼り付けて・・・。 この一連の操作をマクロとして記録して、その上で、 inputobxでの入力や次検索を行うループ処理などの記述を追加していて、マクロを完成させていっては。 あんまり大雑把な質問をしても回答がつきにくいと思われますので、まずはプロトタイプを試作して、その上で具体的な問題点を質問していった方が手っ取り早いかと。

masaru3
質問者

お礼

>一連の操作をマクロとして記録 その手がありましたね・・・。 大変参考になりました! 有難うございました!

関連するQ&A