エクセル初心者のためのシート間のデータ引き継ぎ方法

このQ&Aのポイント
  • エクセル初心者の方がシート間でデータを引き継ぐ方法についてご質問です。
  • 現在、エクセルのシート2からデータを取得していますが、目視で確認するのが大変です。
  • 上段のように氏名検索用のシートを作成し、シート2以降のすべての氏名情報を引き継ぐ方法をご教示ください。
回答を見る
  • ベストアンサー

検索マクロ

こんばんわ。 エクセル初心者です。 今、下記の画像(中、下)のとおり、エクセルのシート2(1月分情報)からデータを 入力しています。シートは10枚くらいになる予定です。 データの構成は、各シートのA2から氏名が入力されており、何名入力されているかは 各月シートによって違っています。 列数はA列からF列まで6列文にそれぞれ情報が入力されています。 今ここでしたい処理なのですが、下画像の上段のようにシート1に氏名検索用の シートを作り、氏名の一文字を入れることによって、シート2以降にあるすべての氏名情報を引っ張ってシート1に表示したいのです。 何かいいコードはあるのでしょうか。今は目視で各シートをひとつづつ確認しているので 大変です。 よろしくお願いします。

この投稿のマルチメディアは削除されているためご覧いただけません。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 一例です。 標準モジュールの↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub 抽出() 'この行から Dim i As Long, k As Long Application.ScreenUpdating = False Range("E:J").ClearContents With Range("E1") .Value = "氏名" .Offset(, 1) = "勤務店" .Offset(, 2) = "職種" .Offset(, 3) = "採用日付" .Offset(, 4) = "年齢" .Offset(, 5) = "性別" End With If Range("A4") = "" Then MsgBox "検索データを入力してください。" Range("A4").Select Exit Sub End If For k = 2 To Worksheets.Count Worksheets(k).Cells(1, 1).CurrentRegion.AutoFilter field:=1, Criteria1:="*" & Range("A4") & "*" i = Worksheets(k).Cells(Rows.Count, 1).End(xlUp).Row If i > 1 Then Range(Worksheets(k).Cells(2, 1), Worksheets(k).Cells(i, 6)).Copy _ Cells(Rows.Count, 5).End(xlUp).Offset(1) Worksheets(k).AutoFilterMode = False End If Next k Application.ScreenUpdating = True End Sub 'この行まで ※ 画像を拝見するとコマンドボタンが配置してあるようですが、 もしコマンドボタンをクリックしてマクロを実行する場合は、標準モジュールはそのままで Private Sub CommandButton1_Click() Call 抽出 End Sub をコマンドボタンのコードにしてみてください。m(_ _)m

aidorumary
質問者

お礼

みなさま、ありがとうございました。 完ぺきにできました。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

一番簡単なマクロ。 private sub commandbutton1_click()  dim s as string  dim w as long  dim r as long  s = worksheets("Sheet1").range("A4").value & "*"  worksheets("Sheet1").range("E:J").clearcontents  if s = "*" then exit sub  for w = 2 to worksheets.count  for r = 2 to 9999   if worksheets(w).cells(r, "A") = "" then exit for   if worksheets(w).cells(r, "A") like s then    worksheets(w).cells(r, "A").resize(1, 6).copy _     destination:=worksheets("Sheet1").range("E65536").end(xlup).offset(1)   end if  next r  next w end sub

関連するQ&A

  • データベースを検索するマクロ(エクセルで)

    エクセル初級者です。 データベース化してある顧客名簿がsheet2にあり、A列は個人別コードが、B列は氏名、C列は郵便番号、D列は住所、・・・といった感じになってます。 教えていただきたいのは、sheet1上で氏名を入力して検索するフォームを作り、検索の結果、ヒットしたすべてがsheet3上に抜き出す方法って可能ですか? うまくいえないのですが、例えば「佐藤」と入力して検索ボタンを押せば、sheet2のすべての佐藤さんのデータがsheet2の形式と同じ形でsheet3に表示されるようにしたいのです。 情報に不足があれば補足しますので、どなたかVBAの書き方を教えてください。よろしくお願い致します。

  • 検索マクロ

    こんにちは。 エクセル初心者で勉強中です。 今、下記のようなエクセルシートを作成しました。 シートの所々の列に”○”、”×”が入力されています。 ここで、VBAを作成し、”×”だけを検索し、メッセージボックスに 「×が4つあります・×のセル D5 F5 F6 J5」 というふうに表示したいのです。 検索はシートのすべてを検索すれば大丈夫です。 今、目視で検索しているので大変です。 どうぞよろしくお願いします。

  • エクセルデータから必要な情報がどこにあるか検索したい(急ぎです!)

    うまく説明が出来ないのですが… データを入力しているエクセルシートにて、探している必要な情報がどこにあるのか検索したいのですが。 詳しく説明しますと、 A列に氏名、B列に住所、C列に年齢、等必要な情報を打ち込み、行毎に一人ずつデータを入力したエクセルシートがあります。 1シートにあたり200人分程の情報がある中から、探している対象の2~3人のデータがどの行にあるのかを探したいのですが、どの関数をどのように使ったらよいのでしょうか。 A列に漢字で入力している氏名にて抽出を行ないたいのですが…。 合計2000人分程のデータから特定の人を探さなければいけない為、手作業では全くはかどらず途方にくれています。 過去に同じような質問をされている方がいるとは思ったのですが、今回、とにかく時間がなく、過去質問を捜している暇がありません。 分かりにくい説明ではありますが、どうぞご協力をお願いします。

  • EXCELでの検索マクロを作りたいのですが

    マクロの初心者です。氏名の検索マクロを作成したいのですが分かりません。 A列:名前 B列:郵便番号 C列:住所 と 名前等のデータを(ランダムに)入力したシート1を作成し、 シート2にシート1の「A列:名前」から性(たとえば青木)で検索して検索ボタン(マクロボタン)を押して該当データを表示させるようにしたいのですが。

  • エクセル複数シートの検索とVBA

    エクセルVBA初心者です。 今エクセル2007で、下画像の上段・中段のような売上げシートを ブックの中に複数シート作成しています。 シートは売上げのあった日毎に作成しており、シート名は「1.1」のように日付にしています。 売上日はシートの左上のA1セルに入力しています。 ここでしたい処理なのですが、画像の下段のように検索用の シートを1枚作り、そこに売上内容を入力し、マクロコードを実行すれま、自動的に 該当するデータ(売上内容から支払い方法まで)を表示するコードはあるのでしょうか。 今は手作業で、シートを目視で確認しているので大変になってきました。 よろしくお願いします。

  • Excelの集計マクロについて質問です

    Excelの集計マクロについて質問です 少々ややこしいのですが、情報を調べていても中々分からなかったのでアドバイスや解決策を頂けますと幸いです。 画像を添付いたしましたので参照しつつ見ていただけると助かります。 2行を一つの入力データとし、名称が4セルの構成になっており シートが集計用シートとデータ入力用シートというものになっています。 そして入力用シートをコピーして、入力内容を増やしていきます。 データ(集計用)にデータ(1)で入力されたものを、データ(集計用)のデータ(1)列に転記していき データ(2)で、データ(1)とかぶるものはデータ(2)列の同じ名称の行に データ(1)で発生しなかったデータがある場合後ろに追記していき、これがデータ(数値)が最小データ(1)、最大データ(40)のシートがある所まで集計していく形にしたいのです。 名称が4セルとなっているのは、1列目が同じ名称の物が来ることがあり、2列目にその細かい違いがでるので4セルとなっています。名称の中には、英文字の大文字と小文字だけの違いのものがあり、それを区別して集計することもあります。(物品Aと物品a) 簡単にできそうかな?と思っていたのですが、各シートを集計用シートの対応の列に転記する事や ないものをどんどん下へ追記していく、大文字と小文字を区別させるといういくつもの考え方が必要で調べても中々望む形を得られなかったので質問させていただきました。 少々複雑(?)かもしれませんが、なにとぞ宜しくお願い致します

  • EXCELのマクロについて

    EXCELのマクロについて質問させてください。 一覧シートから、職種別の各シートへ集計(貼り付け)が出来るような プログラムを作成したいのでやってみたところ、私の知識では上手く出来ませんでした。 お力をお借り出来ると幸いです。 具体的には、一覧シートへ入力後(毎月入力) 『A』 『B』 『E』と分かれた職種別の各シートへ職種別かつ氏名の昇順でソートが掛かった状態で 貼り付け?集計?が出来るようにしたいです。 一覧シートのB列には「A・B・E」のどれかの職種が入力されており 氏名はD列E列へ記載しています。(漢字、カナ表示) A~AD列までデータを記入していますので、全て各シートへ集計出来ると嬉しいのですが・・・ 行は8行目から記載してます。 上記のようにプログラムを組む事は可能でしょうか。 具体的なプログラムも載せて頂けると嬉しいです。 宜しくお願い致します。

  • エクセルマクロ超初心者で、悩んでます。

    エクセルマクロ超初心者で、悩んでます。 どなたか助けてください。 悩みはこうです↓ データ用のワークシートのセルに数字、文字が入力してあります。 セルの数値同士の引き算で算出した数値を列数として、別の印刷用のワークシートのセル番地(列、行)に、「文字」を表示したいのです。 日本語で書いちゃうと ワークシート「印刷用」の、あるセル番地(ワークシート「データ用」から、列数はJ1‐A1、行数はのB1の数値)に ワークシート「データ表」のC1の文字 を出力せよ です。 Worksheets選択がうまくいきません CellsかRangeを使うのかと思いますが、引き算する表現がわかりません・・ 文例があれば、稚拙ながら活用できるかなと思います。 よろしくお願いします!

  • <エクセル>マクロを使ってデータを入力したいのですが・・

    エクセル初心者のため、 どなたかご存知の方がいらっしゃいましたら教えていただけないでしょうか。 エクセルで、ある申込書のフォームにデータ(氏名・フリガナ・生年月日・年齢等を入力したいのですが100名分くらいあるためマクロを作って元データからコピーできれば・・と考えています。 100人分の元データはSheet1にあり、 1名につき1行で、A1に氏名、B1にフリガナ、C1に生年月日・・・(~F1まで)となっています。(~100行目まで) そのデータをSheet2にある申込書フォームの該当欄にコピーしたいのですが、簡単な方法はありますでしょうか。 Sheet2には10名分の入力欄があるので、、 Sheet1の1行目の人のA1(氏名)のデータをSheet2のB12(氏名入力欄)へ、 Sheet1の2行目の人のA2(氏名)のデータをSheet2のB14(氏名入力欄)へ、 ・・・・・ Sheet1の10行目の人のA10(氏名)のデータをSheet2のB30(氏名入力欄)へ、 という感じでコピーしていきたいです。 (フリガナ、生年月日、年齢などそれぞれ欄があります) とりあえず10人分ずつSheet2にコピーできるマクロが組めれば大変助かるのすが・・・。 説明も上手にできず申し訳ないのですが・・・。 私の知識レベルでは100人分こぴぺこぴぺする方が早いのかもしれませんが どなたかアドバイスをいただければ大変うれしいです。 どうか、宜しくお願いいたします。

  • エクセル マクロ 定型ごと抜き出す

    エクセル2010を使っています。 画像の様なデータがあり、8行が1括りになった表があります。 【Sheet4】 (A列~CL列まで) その中でM列に 優良 もしくは 欠陥 と入力されています。 これは、一つの表内で混じる事はありません。 その優良と入力された表だけを 【Sheet5】に抜き出したいです。 ※ ちなみに、現状で5万行ほどありますので、出来れば負担の掛からない形で抜き出したいです。 詳しい方、教えて頂けませんか? よろしくお願い致します。

専門家に質問してみよう