- ベストアンサー
マクロでのファイル間のシートの移動について
AというEXCELファイルでマクロを処理した結果をあらかじめ作成しておいたBというEXCELファイルに移動させてBファイルにどんどん保存していくマクロを作りたいのです。 Aファイルでマクロ実行 ↓ Aファイルの処理結果 ↓ BファイルにAファイルの処理結果のシートごとコピー このようなマクロができますでしょうか? わかる方がいましたらよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
良くコピーで処理しようとする質問が多いですが、判りやすい、書式等含めて移るなど良い点もありますが、反面コピーの貼りつけは、VBA学習していて、難しい面もあります。 (1)下記例ではブックaa2のシートAabで、セル値を ブックaa3のシートAabに渡せる状態になったときに 実行すれば、値がコピーされます。 Sub test04() Workbooks("aa2.xls").Worksheets("sheet1").Range("c10") = _ Workbooks("aa3.xls").Worksheets("Aab").Range("c3") End Sub (2)コピー貼りつけなら ブックaa3のシートAabでの範囲A1:C3を、 ブックaa2のシートSheet1のC10から(E12に)に貼りつける。 Sub test05() Workbooks("aa3.xls").Worksheets("Aab").Range("A1:c3").Copy Workbooks("aa2.xls").Worksheets("sheet1").Activate ActiveSheet.Range("c10").Select ActiveSheet.Paste End Sub 最後の3行の部分(直ぐPasteしない点)が失敗経験後学んだものです。
その他の回答 (1)
- shishishishi
- ベストアンサー率39% (362/921)
Bファイルの名前を Book_B とします。 Book_BはAファイルと同じ場所にあるものとします。 Aファイルの処理結果はSheet1にあるものとします。 コピーは値と書式のみとします。 以上の前提ですと、Aファイルの標準モジュールに下記のマクロを組みこみ、処理が終った段階で実行すればそのようになり、Bファイルは保存されて自動終了します。 Sub test() mypath = ThisWorkbook.Path Workbooks.Open Filename:=mypath & "\Book_B.xls" Sheets.Add ThisWorkbook.Sheets("Sheet1").Cells.Copy ActiveSheet.Cells.Select Selection.PasteSpecial Paste:=xlValues Selection.PasteSpecial Paste:=xlFormats ActiveSheet.Name = Format(Date, "yymmdd") ActiveWorkbook.Save ActiveWindow.Close (False) Application.CutCopyMode = False End Sub