複数のエクセルデータ上特定位置の値を一つのセルに

このQ&Aのポイント
  • 大量の同じフォーマットのエクセルファイルがあり、それぞれのBookファイルの「NO.」シートのD6セルには番号が入っています。
  • 「データ」ファイルのA列には「NO.」が入力されているので、Bookファイルの値はそれぞれ対応する番号の右側3番目のセルに移したいです。
  • VBAで簡単にデータをまとめる方法を教えていただきたいです。
回答を見る
  • ベストアンサー

複数のエクセルデータ上特定位置の値を一つのセルに

大量の同じフォーマットのエクセルファイル(Book1,Book2...)があり、それぞれのBookファイルの「NO.」シートのD6セルには番号が入っています。それぞれファイルでSheet1の特定のセル(例えばB4セル)の値を「データ」ファイルのSeet1にまとめたいです。「データ」ファイルのA列には「NO.」が入力されているので、Bookファイルの値はそれぞれ対応する番号の右側3番目のセルに移したいです。 いちいちコピーすることもできますが、あまりに量が多いので、VBAで簡単にできないかといろいろ試行錯誤してみましたが、うまくいかず悩んでいます。どなたか教えていただければと思いここで質問します。質問の意図がうまく伝わったかどうか不安ですが、よろしくお願いいたします。

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

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

丁寧に、順繰り拾って開いて調べて転記するだけです。 アナタが手でやれば出来る手順を、その通りにマクロにしていくだけという言い方もできます。 sub macro1()  dim myPath as string  dim myFile as string  dim myNo as variant  dim myRng as range  on error resume next  application.screenupdating = false  mypath = "c:\test\" ’book1,2,3…の保存場所を指定する事  myfile = dir(mypath & "*.xlsx") ’拡張子を正しく指定すること  do until myfile = ""   workbooks.open mypath & myfile   myno = workbooks(myfile).worksheets("No.").range("D6").value   set myrng = thisworkbook.worksheets("Sheet1").range("A:A").find(what:=myno, lookin:=xlvalues, lookat:=xlwhole)   myrng.offset(0, 3).value = workbooks(myfile).worksheets("Sheet1").range("B4").value   workbooks(myfile).close savechanges:=false   myfile = dir()  loop  application.screenupdating = true end sub

bwcnn017
質問者

お礼

ぅおーーー、できました。 まさに私が思った通りになっていました。本当にありがとうございました<(_ _*)> 早速のご回答ありがとうございました。これからいろいろチャレンジしてみます。

関連するQ&A

  • 複数のエクセルデータ上特定位置の値を一つのセルに2

    前回の質問「複数のエクセルデータ上特定位置の値を一つのセルに」に対し、ベストアンサーを教えていただきました。その質問とご回答のポイントは次の通りです。 質問: 大量の同じフォーマットのエクセルファイル(Book1,Book2...)があり、それぞれのBookファイルの「NO.」シートのD6セルには番号が入っています。それぞれファイルでSheet1の特定のセル(例えばB4セル)の値を「データ」ファイルのSeet1にまとめたいです。「データ」ファイルのA列には「NO.」が入力されているので、Bookファイルの値はそれぞれ対応する番号の右側3番目のセルに移したいです。 ご回答: sub macro1()  dim myPath as string  dim myFile as string  dim myNo as variant  dim myRng as range  on error resume next  application.screenupdating = false  mypath = "c:\test\" ’book1,2,3…の保存場所を指定する事  myfile = dir(mypath & "*.xlsx") ’拡張子を正しく指定すること  do until myfile = ""   workbooks.open mypath & myfile   myno = workbooks(myfile).worksheets("No.").range("D6").value   set myrng = thisworkbook.worksheets("Sheet1").range("A:A").find(what:=myno, lookin:=xlvalues, lookat:=xlwhole)   myrng.offset(0, 3).value = workbooks(myfile).worksheets("Sheet1").range("B4").value   workbooks(myfile).close savechanges:=false   myfile = dir()  loop  application.screenupdating = true end sub 現在Excel2007を使っており、Bookファイルが全部(.xlsx)の状態では問題なく使えましたが、ファイルが97-2003の(.xls)バージョンになると、マクロを実行したときに次のメッセージが出ます。「データ.xlsmは既に開いています。2重に開くと、これまでの変更内容は破棄されます。データ.xlsmを開きますか?」 もちろんご回答の中の「myfile = dir(mypath & "*.xlsx") ’拡張子を正しく指定すること」は("*.xls")に変更されている状態です。 何が問題なのか全く分からず、困っています。どなたか教えていただけないでしょうか? よろしくお願い致します。

  • 複数のBookから決まったセルの値を別のBookに

    お世話になります。 EXCELで複数のBOOKから決められたセルにある値を抽出してひとつのBOOKに纏めたいのです。 BOOK1~50、 BOOKには31枚のSheetがあります。 その中のSeet31にSeet1~30のデーターを纏めてあります。 Seet31の A1~3 B1~2 C1~3 のデーターを抽出して 新しく作ったBook【集計】のSeet1にBook1~50から抽出した データーを縦に並べたいのです。 【 例 】   A1 A2 A3 B1 B2 C1 C2 C3 1  5  2  4  3  6  7  1  3 2  2  3  4  6  9  7  5  2 3  7  8  5  6  2  3  1  8 と、いった感じです。 なお、Book名は『漢字+数字』です。 宜しくお願いします。

  • excelで任意のブックの特定範囲の値を返す

    会社で使っているソフト(Xソフトとします)から、デスクトップに出力されるexcelファイルがあります。 そのファイルに出来上がっている全てのシートの同じセル範囲から、 ひとつのexcelファイルに値を抜き出したいと考えています。 いきなり範囲で抜き出すのは難しいかと思い、とりあえずひとつのセルの値を抜き出せないかと試行錯誤しています。 book1のA1セルに、book2****のD1セルの値を入力したい場合 book1のA1セルに以下のように入力していますが#REF!と表示されてしまいます。 =indirect("'["&B1&".xls]"&C1&_1&"!D1") Xソフトから作成されるexcelファイルの名称が、作成した日時を反映するようになっているため、book2****の****部分には日時が入ると思ってください。つまり、book2の名称は Xソフトからデスクトップに保存する度に変化してしまいます。 また、book2****に作成されるシートはXソフトから取り出したいデータ量によって変わり、 その名称はbook2****の各シートのC1セルの文字列に_1、_2、、、、と連番になる仕組みになっています。 そのため、book1のB1セルにbook2のファイル名称を入力し、 シート名はbook2****のC1セルの文字列と_1(、_2、、、)を組み合わせることで D1セルの値を返したいと思っています。 マクロやvbaの経験はあまりないため、関数でがんばっているのですがうまくいきません。 本当は、Xソフトから作成されたファイルをクリックするだけで読み込めるような仕組みが作れるのが理想なのですが、なかなかできず困っています。 どなたか詳しい方おりましたら教えてください。よろしくお願いします。

  • EXCELでブックを開かず?に値をコピーするには?

    VBAに関する質問です 現在作業中のブック「Book1」のシート「Sheet1」のセル「A1~A10」の値を、開いていない「Book2」のシート「Sheet2」のセル「B1~B10」にコピーし、さらに「B1~B10」の値をソートするということをしています。 現状ではBOOK2を開いてコピーするという方法しか判らないので、そうしているのですが、いちいちBOOK2が立ち上がるのが目障りなので、BOOK2を開かないか非表示のまま作業できないものかと思っております。 何卒よろしくお願いします。

  • 複数のブックのデータを集めて、グラフを書きたいです

    Book1、Book2には、異なる行列のデータがあります この2つのブックのデータを参照してグラフを書くマクロをVBAで組んでいます Book1,Book2のシートをそれぞれグラフに書くところまでは出来ました 質問1. Book1のA1~An(Aのセルすべて)を、Book2の指定のセル(例えばC1~Cn)に コピーしたい 質問2. Book2のセルB1~B100のデータと Book1からコピーしたC1~C300のデータを 同じグラフ上にプロットしたい AのセルをX軸のデータとして使用する 宜しくお願いします

  • 複数のエクセルブックから特定シートの特定セル抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル値を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 よく似ている質問、回答を読んだのですが、私のレベルではとても応用できず質問させていただきます。 【前提】 ・実行する端末のOSはWindows XP(SP3)、Excelは2003 ・対象フォルダはネットワーク接続フォルダ「\データ解析\データ」  この中に、複数のExcelブックがあります。 ・抽出したい対象は、各ブック内のシート(シート名はファイル名と同じ)の「BO6からBW16までの□の範囲」で統一されています。 【抽出一覧作成イメージ】 ・「集計.xls」ブックの「Sheet1」の2行目から抽出した結果を一覧表示する。 ・表示はA列に抽出元ブック名(=ファイル名)、B列に抽出元BO6セルの値。以降,C列・D列と 順に値を入れていきたい。 ・BO6~BW16までのセル値を「集計.xls」ブックの「Sheet1」に貼り付ける際には「値で貼り付ける」が望ましい。 というようなイメージです。 とても勝手なお願いではありますが、宜しくお願いいたします。

  • エクセルで複数のブックに、値を同時入力する方法は?

    同一ブック(ファイル)内の、別シートの同じ番地に、値を同時入力する方法はあるのですが、これをブック間では行えないでしょうか? 例えば「Book1」の「A1」セルに「あいうえお」と入力したとします。 すると、別ファイルの「Book2」の「A1」にも「あいうえお」と入力されるようにしたいのです。 よろしくおねがいします。

  • ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出した

    ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出したいのですが、やり方をご存じの方がいらっしゃったら教えてください。 フォルダ内には150個ほどエクセルファイルがあり、中身のシート名・フォーマットは同じなのですが、すべてファイル名が違います。 ファイルを開くことなく、これらのファイルの特定のシートの特定のセルにある値を、全て1枚の表にまとめることは可能でしょうか? フォルダ名 →"AGENDA_RIREKI" 参照したいファイル名 →ファイルによって異なる "#1111 AAA.xls"など 参照したいシート名→ "AGENDA" 参照したいセル→ "A7" と "E20~E70(E列のみ) データをまとめたいファイル名→ "AGENDA_matome.xls" データをまとめる時の形↓ (A列)          (B列)            (C列)        (D列) ファイル1のA7の値 ファイル1のE20の値  ファイル2のA7の値  ファイル2のE20の値                     E21の値                    E21の値                     ・                     ・                     ・     VBAは初心者です。。できればコードをそのまま拝借したいです。 お知恵を貸してください。よろしくお願いします。

  • エクセル)VBAで他のブックのセル参照

    はじめまして。 エクセルのVBAについて教えてください。 VBAで、 book1のsheet1のセルA1にあるデータを開いていない(アクティブでない)別のbook2のsheet2のセルB1にコピーしたいのですがこんなことってできるのでしょうか? ・・やはり開いていないとダメなんでしょうか? あと、これって"ブック参照"っていうことなんでしょうか?自分がやりたいことが何なのか判らないので上手く調べる事が出来ず難儀しています。 よろしくお願いします。

  • Excel - セルの値を外部シート名として認識させる

    お世話になります。 例えばデスクトップに置いてあるブックのセルを、別のブックのセルに引っ張るとき。 ='C:\Documents and Settings\UserName\デスクトップ\[Book1.xls]Sheet1'!A1 という風になりますが。 例えばBook2のセルA1に【Book3】、A2に【Sheet5】とあってこれらが可変であるとき、セルA3に ='C:\Documents and Settings\UserName\デスクトップ\[Book3.xls]Sheet5'!A1 の値を引っ張ろうと思ったら、それは可能でしょうか。 【Book3】、【Sheet5】はそれぞれユーザが任意に入力すると、テーブルの値が変わる、という風にしたいわけですが。