• ベストアンサー
  • すぐに回答を!

複数のEXCELファイルより一部の行を自動でマージするマクロ

「(1)複数のEXCELファイル」より、「(2)特定のシート」の中のさらに「(3)特定の行」をコピーし、あるEXCELファイルの1シートに挿入していくマクロ(VBA)か、ソフトが掲載されているサイト、もしくは、やりかたを教えてください。 1.EXCELは、2003 2.「(1)複数のEXCELファイル」は、一つのフォルダにあり、データ形式は一緒。  そのフォルダにはEXCELファイルしか置きません。 3.「(2)特定のシート」について、シート名はどれも一部のみ一致します。  または位置(順番)は一緒です。 4.「(3)特定の行」はどのファイルも作りが一緒です。 VBA初心者ですが、ヒントをいただければ頑張りたいと考えています。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数1643
  • ありがとう数3

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

  • ベストアンサー
  • 回答No.2

ここならフォルダ内のワークブックを順次処理しています。

参考URL:
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_120.html

共感・感謝の気持ちを伝えよう!

質問者からのお礼

リンク先をコピペして使用すると、フォルダ内のワークブックを順次処理し印刷する事を確認しました。ありがとうございます。ただ私があまりにも初心者のため、どのようにすればこれを特定の行をマージするマクロにするのかが分かりません。 (8)の以下を何とか差し替える認識で合っていますでしょうか。 --------------------------------------------- ' 全シートを印刷 objWBK.PrintOut ' objWBK.PrintPreview ' ※お試し用(プレビュー) --------------------------------------------- また一例を教えて頂けると、助かります。 条件 1:1ファイルにつき5シートあるEXCELファイルより、3シート目の任意行をコピー 2:上記を集計するファイルに、コピーした行を次々に「コピーしたセルの挿入」を行い結果的に複数のファイルから特定の行を列挙させる。   PS:本件、目的はアンケート結果を項目ごとに抜き出したいためにやっております。

関連するQ&A

  • 複数フォルダ内のファイルに一括でマクロ

    複数のフォルダ内に入っているエクセルファイルに一括でマクロをかけたいのですが、どうすればよいのでしょうか? フォルダにはエクセルファイルしか入っていません。 検索したところ秀丸というツールがあるようですが、有料であるため、ほかの方法を探しています。無料でVBAなどで出来ませんでしょうか?

  • マクロによる複数のエクセルファイルのセル結合解除

    エクセル2016を使っています。 aaaという名前のフォルダの中に、複数のエクセルファイルが保存されています。 エクセルファイルにはそれぞれ複数のシートがありますが、シート枚数はファイルによって異なります。 全てのエクセルファイルの結合セルを解除して上書き保存したいのですが、まとめて行うためのマクロを書けません。 なお結合されているセルはどのシートでもA1からAZ150の中にあります。 おわかりの方教えていただけますでしょうか。 よろしくお願いいたします。

  • Excelファイルがマクロを含むか調べるには?

    Excell2003で作っていた多量のExcelファイルを、Excel2010で動かす事が必要になってきました。 で、指定フォルダにある複数のExcelファイルが、マクロを含んでいるかどうかを調べたいのです。 加えて、マクロを含んだExcelファイルのファイル名をリストアップしたいのですが、 どの様にしたら良いでしょうか? 適切なマクロなりともご教授いただきたく、よろしくお願いします。

その他の回答 (2)

  • 回答No.3
  • imogasi
  • ベストアンサー率27% (4554/16297)

こんなの初心者のやる課題ではない。 ーー 質問の文章に「特定の」を使いすぎ。模擬実例として、仮の例でもはっきりさせてもらったほうが、読者・回答者は判りやすい。 法律は読みにくいがそんな感じを受ける。 ーー マージするには、2つの!ブックのそれぞれのSheet1とかに限るべきです。そして2つの間にマージがすめば、第3のブックのSheet1とマージを行う。それで質問課題としては、第1段階の場合に限るべきです。 ーー 昔からマージで行われるロジックがあります。それは2つのファイルA,Bをそれぞてキー順にソートし、マージのロジックでAとBのキーを比べて、その、大、小、等しいを 判定し、大小の場合は書き出し、等しい場合は対応フィールドを更新になるのかな(質問には書いてないが)。 これら以外のやり方では、ごたごたしたロジックになるのは必至です。 そのロジックは先人の知恵が詰まっていて、優れたものだからです。 ーー あるいは、A,Bの2つを、A,Bのサインをある列に付加して、単純にAの最終行の下にくっつけるーー>第1課題 キー+(A,Bのサイン)でソートーー>第2課題(<ーマクロの記録からコードが判る 同じキーが続く行区間に着いては、しかるべき処理をする。(BでAの対応列を置き換えて、別シートに書き出すとか、また 同じキーがない行は別シートにそれを書き出し-->第3課題 ーー >データ形式 は別の意味がありそう。 同じ列・項目構成、とかの表現でどうでしょう。具体的に例を書くとか。

共感・感謝の気持ちを伝えよう!

  • 回答No.1

まず、Dir関数を使用しファイル名を取得します。DO WHILE len(dir()) > 0 でまわします。 Dirは直前にしようしたDir関数とおなじディレクトリの次のファイルを取ってこれるます。 次に、そのブックにシートが存在するかをチェックします。 ADOを使用してチェックすると早いですしEXCELのバージョンによる変更が必要ないのでお勧めです。 チェック方法としては、パターンを使用してチェックするか、instr()関数を使用すればよいと思います。 チェック条件に引っかかればエクセルをオープンし、特定の行をマージすればよいでしょう。 VB6.0のサイトを紹介いたします。 VBAはVB6.0の機能縮小版ですので、VB6.0のコードをほとんど使用することができます。

参考URL:
http://hanatyan.sakura.ne.jp/index.html

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • 複数のEXCELファイルの特定セルを別ファイルへコピーする

    EXCELで作った見積書のセル内容を自動的に集めて、見積り一覧表を作りたいなと考えています。 見積書は1見積り1ファイル(シートは複数ありますが1枚目のシートが対象)になっていて、 各ファイルの1枚目のシートの特定セル内容(日付、相手先、件名、金額など)を 見積り一覧表として作成したEXCELシートへ順次コピーしたく思います。 動作イメージは 1.見積り一覧表を開いてボタンを押す等してマクロを起動。 2.同一フォルダー内の自分を除く全EXCELファイルを順次開きセル内容を一覧表へコピー。 3.全てのEXCELファイルを処理したら終了・・・。 発展系として、 ・日付条件で対象EXCELファイルを絞り込む。 ・特定セルに値が入っていなかったら(関係ないEXCELファイル)スキップ。 あとは一覧表が出来た後のソートくらいでしょうか。 まずは基本的な「自動的に複数EXCELを開いて特定セル内容をコピーする」のヒントがほしく思います。 なお、自動処理対象としたいEXCEL見積りファイルは約500本ほどです。 関連情報等ご存知でしたらお教えください。 よろしくお願いいたします。

  • エクセルマクロでファイルを開かず行をしらべたい

    こんにちは! エクセルマクロでファイルを開かず一番下の行を調べたいのですが、どうしたらよいでしょうか? 色々試行錯誤して、下記を組んでみましたが、上手くできませんでした。 test1のエクセルに下記のマクロを入れてあります。 C直下のtestフォルダの中のtest2.xlsのsheet1のファイルを読み込みたいです。 Dim line As Long Dim names As String names = "C:\test\[test2.xls]sheet1" line = ExecuteExcel4Macro("'" & names & "'!R1C1").End(xlUp).Row 「ファイルを開かず一番下の行を調べる」ことができれば、上記のマクロを動くようにするでも、別のマクロを提示するでも構いませんので、アドバイスのほどよろしくお願いいたします。

  • 複数Excelファイルの一括インポートしたい。

    複数Excelファイルがあります。(aaa.xls、bbb.xls・・・) 同フォルダ内にあるExcelファイル(20個ほど)を1つのファイルにしたいのですが、 手動コピペ以外の方法を教えていただけますでしょうか? できれば、マクロ、VBAでお願いします。 ワークシート名はすべて同じです。(Sheet1のみ取り込みたい(無理であれば他も取り込みしてもOK)) 1つのファイル内で横に並べるようにしたいです。(ファイル名か、Sheet1_1,Sheet1_2・・・) よろしくお願いします。

  • 複数フォルダ内のファイル群をひとつに纏める

    Excel2003のVBA で、以下の作業を行いたいので宜しくご教示下さい。   サーバー上や自分のPC上にある、任意フォルダA直下には、   複数のフォルダがあり、その複数フォルダ内に多数のファイル(約3万個)が入っている。   そのファイル群を、任意フォルダAの直下に新しいフォルダを1つ作り、全てコピーし纏めたい。   当方の構想(希望)としては、   1.エクセルシート1に全ファイル名を書きだす。(行:フォルダ名、列:ファイル名)   2.同名ファイルの有無を判定し、有ればエクセルシート2にフォルダ名とファイル名を抽出する。     (同名ファイルは、エクセルシート2を確認し、手動で変更する)   3.同名ファイルが無ければ、新しいフォルダに全てコピーする。 コードを記載しご教示頂ければ助かります。 皆様よろしくお願い致します。

  • Excelマクロについて

    Excelマクロ(VBA)で複数のExcelファイルを一括で処理するプログラムを作っているのですが、処理対象のExcelファイルにはマクロが記述されていて、Excelを開く毎に記述のマクロが動いてしまいます。 対象のExcelファイルをオープンする時に、マクロを無効にして開くすることは可能でしょうか? 今現在、Excelファイル開く時に使ってる命令は、 Workbooks.Open Filenameです。

  • エクセルのマクロで複数のシートのコピー

    エクセル初心者です。 私の場合、3から5社のフォルダが作ってあり、それぞれ、エクセルで、日々の入出庫の管理&集計をしています。 3社のフォルダより、指定ファイル・シート内のデータをピボットテーブル用集計シートにコピー貼り付けしたいのです。 ピボットテーブル機能で複数のシートを選択するのはシート数が多すぎて手間。 マクロによって、集計シートにまとめてから、ピボットテーブル機能を使いたい。 各社シートのフォームは同じ.。 日付けを指定してコピー貼り付けしたい。 集計シートに各社連続で貼り付けがしたい。 集計シートの最初の行だけにタイトルを表示したい。 なるべく、フォームの行・列幅は変更しないようにしたい。 貼り付けたデータのユーザー名がわかるようにしたい。 なにとぞ、お力をお貸しください。 よろしくお願いいたします。 エクセル2003

  • Excel 複数ファイルまとめる方法

    特定のフォルダに50個のファイルがあります。 各ブックともにシートは1つですが、シート名がすべて異なります。 50個のファイルを1つのファイルにまとめる方法をお教えください。 教えてサイトで多数情報はあるのですが、シート名がSheet1になっている場合が多いので 情報を探しきれませんでした。 Excel VBAの初心者です。VBAで解決できると助かります。

  • excel 特定の複数行の削除

    excelである複数行と他のシートのある複数行を比較して、 一致する行は全て削除するということはできるんでしょうか?

  • Excelマクロで複数のファイルを開く方法

    Excel VBAでそのマクロを実行するファイルと同じフォルダにある 複数のテキストファイルを全て開いて、ある処理を実行して それを名前を変えた別のテキストファイル(元のテキストファイル名に 何らかの名前を追加する形が望ましいです。)として保存する マクロを作成したいのですが、可能でしょうか。 当方、初心者につき申し訳ございませんがよろしくお願い致します。

  • 複数のエクセルファイルを1つのエクセルファイルのシートにコピーをマクロ

    複数のエクセルファイルを1つのエクセルファイルのシートにコピーをマクロで行いたい。 マイドキュメントのデーターというフォルダ内に エクセルファイルA(シート名みかん) エクセルファイルB(シート名りんご) エクセルファイルC(シート名バナナ) エクセルファイルD(シート名ぶどう) エクセルファイルE(シート名いちご) があります。 雛形は同じです。すべてA列~F列までデータが入っています。 行数はファイルによって違います。 また毎日自動で上書き更新され、毎日行数が変わります。 エクセルファイルZがあります。シートが7個あります。 ・変換 ・集計 ・みかん ・りんご ・バナナ ・ぶどう ・いちご エクセルファイルZを開きます。(各シートには昨日のデータが貼り付けてあります。) マイドキュメントのデーターフォルダも開いておきます。 エクセルファイルZにおいて「マクロの記録」を起動。 エクセルファイルZの 【みかん】~【いちご】までの5シートを全データDELETEします。 開いてあるフォルダ「データー」の中からエクセルファイルAを開きます。 (タスクバーにいます) ファイルAのシート【みかん】の全データ選択して エクセルファイルZの【みかん】というシートのA1セルにカーソルを あわせて貼り付けします。 開いてあるフォルダ「データー」の中からエクセルファイルBを開きます。 (タスクバーにいます) ファイルBのシート【りんご】の全データ選択して エクセルファイルZの【りんご】というシートのA1セルにカーソルを あわせて貼り付けします。 これと同じ操作を【バナナ】【ぶどう】【いちご】も行います。 エクセルファイルZにおいて「マクロの記録」を終了させます。 マクロができあがりました。 ファイルZを上書き保存して終了。再立ち上げで記録したマクロを実行。 エラーにはなりませんが、ファイルZの5種類各シートに ファイルA~Eのデータが貼りつきません。 何か無理な事をしているのでしょうか? もしかしてシート名が同じだと駄目?とためしにファイルZのシート名【みかん】~【いちご】を 【みかんZ】~【いちごZ】に変更してマクロを再記録しても 駄目でした。 よろしくお願いします。