- ベストアンサー
VBAでデータ検索とコピー、ペーストの方法
- VBAを使って指定したキーワードに合うデータを検索し、そのデータを別のセルにコピーしてペーストする方法を教えてください。
- キーワードを入力するためのInputBoxを表示し、入力されたキーワードに合うデータをデータの中から探し出して行全体をコピーします。
- 次に、ペースト先の指定した行にコピーしたデータをペーストします。もし合うデータがない場合は「データはありません」と表示するようにします。VBA初心者でも簡単に作成できる方法です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
質問文からは、「既にあるデータの範囲」と「別の指定した行」をどうコーディングすれば良いのか分からなかったので、[既にあるデータの範囲][別の指定した行]としました。 Sub test() Dim Keyword Dim Fnd '入力されたキーワードを変数Keywordに入れる Keyword = InputBox("キーワードを入力してください") '[既にあるデータの範囲]からキーワードを検索し、検索結果のセルをオブジェクト変数Fndにセットする Set Fnd = [既にあるデータの範囲].Find(Keyword) 'もし、キーワードが見つからなかったら If Fnd Is Nothing Then MsgBox "データはありません" 'もし、キーワードが見つかったら Else 'キーワードが見つかったセルを含む行全体を、[別の指定した行]にコピペ Fnd.EntireRow.Copy [別の指定した行] End If End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
#2です。 >マクロの記録でInputBoxから入力情報を検索して・・・ そういうことを言ってない。 検索語をInputboxで指定するなんて部分は、検索をするコードの付け足し部分です。 本体の骨格部分がマクロの記録でわかるということ。 もちろん部分的に、マクロの記録を変更したり、繰り返しに持ち込んだりする必要がある場合がほとんどだが、まず丸なげしないで、結果的に行き詰まっても、やって見ることが必要だと言っている。
- imogasi
- ベストアンサー率27% (4737/17069)
こんなタイプの質問は、マクロの記録を取ってコードをみて、何処を変えるべきか勉強のこと。 それにこの質問はエクセルか、ワードか。どちらでも成り立つような質問だ。 エクセルかワードぐらい、質問のはじめに書くべきです。 セルとあるからエクセルか。 ワードVBAは慣れている人も少ないと思うし解説書もWEBに断片的にあるぐらい。 ーー 判らないからといって丸投げする人が多いが、マクロの記録で相当程度頼れる課題と思うので まずやってみること。 ーー 操作は検エクセルでは、編集ー検索のそうさです。 ーー ただ該当が2(個所)つ以上ありえる場合は、コーf度は初心者には難しいものになる。 検索の終わりをとらえるやり方が、多少VBAをやった者にも難しい。 ーー 場合によっては依頼を断らざるをえないだろう。 。
お礼
初めて質問だったので至らないことだらけですみませんでした。 マクロの記録でInputBoxから入力情報を検索して・・・・・なんてできるのですか? 知りませんでした。
お礼
明日、早速職場に行って使ってみます。 ありがとうございました! こういうことすらすらできる人って尊敬します。 また何か困ったことがあったらお願いします。
補足
思い出した捕捉です。 AB-Cと123456はセットですが列が別になっています。 英語の列と数字の列になっています。 InputoBoxに続けて入力しても検索できますか? それとも2段階に分けた方が良いですか? たとえば、先に英語を聞き、次に数字と・・・・。