電子書籍の厳選無料作品が豊富!

AというEXCELファイルでマクロを処理した結果をあらかじめ作成しておいたBというEXCELファイルに移動させてBファイルにどんどん保存していくマクロを作りたいのです。

Aファイルでマクロ実行

Aファイルの処理結果

BファイルにAファイルの処理結果のシートごとコピー

このようなマクロができますでしょうか?
わかる方がいましたらよろしくお願いします。

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しない点)が失敗経験後学んだものです。
    • good
    • 0

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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!