- ベストアンサー
エクセルでブック間のシートの合体?教えてください。
エクセルの作業で困っちゃいました。 同じホルダー内に 0210A.xls、sから0309A.xlsの12種類 0210B.xls、sから0309B.xlsの12種類 0210C.xls、sから0309C.xlsの12種類 0210D.xls、sから0309D.xlsの12種類 の48のブックがあります。(0210は2002年10月の意味です。) 各ブックは複数のシートを持っており、各ブックに共通してあるのは「AAA」、「BBB」、「CCC」の3種類で、それ以外のシートもあります。シートの順番は各ブックによりまちまちです。 これらのブックの共通する3種類のシートだけを合体して 0210AB.xlsから0309AB.xlsの12種類、(AとBの合体) 0210CD.xlsから0309CD.xlsの12種類、(CとDの合体) の24種類のブックを作りたいのです。 各ブックは「AAA」、「BBB」、「CCC」の3シートを持ちます。中身はオリジナルの各「AAA」、「BBB」、「CCC」の単純な寄せ集めです。 データは各シートとも1行目に項目、2行目以降にデータで、列はAF列まで使用しています。データの個数はまちまちで、オートフィルターを使用しています。 たとえば、0210A.xlsのシートAAAが200行であれば0210BのシートAAAのデータの一行目の項目は不要ですので2行目から最終行までコピーして201行以降に貼り付けるという感じです。同様にシートBBB、シートCCCも処理します。各シート1行目はオリジナルと同じ項目名とします。 手作業でやろうと思いましたが、誤りの発生もこわいのでVBAなどでうまくできる方法はないでしょうか?わたしのVBAの知識はマクロ自動記録ができるくらいなので助けてほしいのです。 Windows2000でエクセルも2000です。 よろしくお願いしま~す。
- みんなの回答 (3)
- 専門家の回答
お礼
試行錯誤の結果なんとかできました! ありがとうございました。 ただ一つだけ ActiveSheet.Paste Destination:=Workbooks("book1.xls").Worksheets("Sheet1").Range("A1") のペーストを PasteSpecial Paste:=xlFormulas を使いたいのですが、どう組み合わせたらいいのかわかりませんでした。 これは別の質問で書き込んでみます。 ありがとうございました。
補足
ありがとうございます。 上記でうまくシートの合成はうまくいきます。 (Workbooks.Open FileName:="C:\WINNT\Profiles\user68\デスクトップ\" のところは変えましたが) ただ、合成された新しいブックにマクロがそのまま残ってしまうのです。 ActiveWorkbook.SaveAs FileName:=NfnP '別名を付けてブックを保存する とやっているから当然なのですが。 そこでこの合成されたAAAシートだけを名前をつけて保存しようと、マクロの自動記録で「シートの移動またはコピー」で名前を付けて保存してみたのですがうまくマクロが記録されません。 このシート(マクロを含まない)だけを別名で保存するにはどうすればいいのでしょうか? 何度もすみません。