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