- ベストアンサー
EXCEL VBAで文字列の検索とコピー
検索したい文字をinputboxで入力して、A列を検索して、検索文字を含むセルをコピーして、そのコピーしたデータを、別のシートに貼り付ける、次に該当したセルをさっきコピーしたデータの次の行に貼り付けて・・・。とデータが入力してある最終行までの繰り返し、をやりたいのですが、ご指導の程、説明が下手ですが宜しくお願いします!
- みんなの回答 (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
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
> A列を検索して、検索文字を含むセルをコピーして、 > そのコピーしたデータを、別のシートに貼り付ける、 > 次に該当したセルをさっきコピーしたデータの次の行に貼り付けて・・・。 この一連の操作をマクロとして記録して、その上で、 inputobxでの入力や次検索を行うループ処理などの記述を追加していて、マクロを完成させていっては。 あんまり大雑把な質問をしても回答がつきにくいと思われますので、まずはプロトタイプを試作して、その上で具体的な問題点を質問していった方が手っ取り早いかと。
お礼
>一連の操作をマクロとして記録 その手がありましたね・・・。 大変参考になりました! 有難うございました!
お礼
早速のご回答有難うございました!! なんとか思うように出来そうです♪ 有難うございました。