家・車以外で、人生で一番奮発した買い物

Excel2010の「ホーム」タブの「編集」グループより「検索と選択」の「検索」で住所録の「名前」を検索しています。
「検索する文字列」に「名前」を入力して「すべて検索」をクリックすると検索結果がでますが、検索結果の表示方法が「セル番地」だけを表示しているため一つ一つそのセルをクリックして内容を確認しています。
これを検索された複数のデータを住所録一覧表の項目名に合わせてまとめて別シートにコピーしたいのですが・・・。

Sheet1に次の項目名で住所録を作成しています。
A列:会社名
B列:名前
C列:住所
D列:電話番号

「名前」で検索して、検索されたデータのA列からD列までのデータを別シート(Sheet2)の同じ表にコピーしたいのです。
名字だけの検索ですので結果が複数ある場合は、すべての検索結果を数行にわたってコピーできればいいのですが・・・。

このメニューのコマンドを使わなくても、何か他の方法でVBAの例があれば教えていただきたいと思います。

宜しくお願いします。

A 回答 (2件)

結論から言うとわざわざマクロなど使わずとも。



推奨:
データタブの「オートフィルタ」を取り付け、「テキストフィルタ」から「指定の値を含む」(あるいは等しい、始まる等)で名前を記入して絞り込み、まとめて選んでコピー貼り付ければ完成です。



それとも。
とにかく操作をしたくないのでマクロをどうしても使いたい、というご相談なら。

作成例:
sub macro1()
 dim s as string
 s = inputbox("NAME?")
 if s = "FALSE" then exit sub

 application.screenupdating = false
 worksheets("Sheet2").cells.clearcontents
 with worksheets("Sheet1")
  .autofiltermode = false
  .range("A:D").autofilter field:=2, criteria1:=s & "*"
  .range("A:D").copy destination:=worksheets("Sheet2").range("A1")
  .autofiltermode = false
 end with
 application.screenupdating = true
end sub



一応念のため:
手を動かして操作したほうが、たとえば「どこにどんな具合に貼り付けたい」とかその時々の状況に応じて機動的に作業できますので、結果的には仕事は早いと思いますよ?
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございます。
「オートフィルタ」の方法を使ってみることにしました。
仰る通り、少ないデータの場合は手作業で「コピー」‐「貼り付け」の方が早いですね。
でも、VBAも勉強したいので回答を頂いたコードを使って試したいと思います。
ありがとうございました。

お礼日時:2012/07/26 00:08

手作業をVBAとして記述してくれる「マクロの記録」機能を利用してみては?



冗長な部分が多々ありますが、何をしているか見ることができますよ。
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございます。
「マクロの記録」を使ったのですが「次を検索」ボタンではマクロの記録が記述されるのですが「すべて検索」のボタンでは何も記録されません。

Sub Macro1()

End Sub

の表示だけで中身がありません。
動作上では確認できるのですが、コードが記述されないため役に立ちませんでした。

お礼日時:2012/07/26 00:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報