dポイントプレゼントキャンペーン実施中!

VBA初心者です。こんなマクロを作りたいのですが・・・
(1) Aファイルのαシートから操作する。
(2) Bファイルを開いて、βシートの一部をコピー
(3) Bファイルを閉じる(保存なし・各種アラートなし)
(4) Aファイルに再び戻り、αシートに貼り付けする

といったものなのですが、
(2)まではできたのですが、(3)からうまくいかず、勝手に新規ファイルにβシートがコピーされてしまいます。
是非ご教授ください。

A 回答 (3件)

A No.1とかぶっちゃいましたが、サービスでコード付ということで投稿させていただきます。


(1) Aファイル(マクロを記述してある)から操作する。
(2) Bファイルを開く
(3) Bファイルのβシートの一部をコピーして、Aファイルのαシートに貼り付けする
(4) Bファイルを閉じる(保存なし・各種アラートなし)
というワークフローにすれば、
(3)は、
Sub test()
Workbooks("Bファイル.xls").Sheets("β").Range("A1:B4").Copy ThisWorkbook.Sheets("α").Range("a1")
End Sub
で実現できます。(複写先範囲は適当にいじって下さい)
    • good
    • 2
この回答へのお礼

ありがとうございます
うまく実現できました。
本当に助かりました

お礼日時:2008/08/16 20:26

例えばこんなマクロでもできます



Sub Macro1()
Dim wb As Workbook
Dim psw As Boolean
Dim myPath As String
 myPath = ThisWorkbook.path
 For Each wb In Workbooks 'Bファイルが既に開いているか確認
  If wb.Name = "Bファイル.xls" Then
   psw = True
   Exit For
  End If
 Next wb
 If psw = False Then
  Workbooks.Open (myPath & "\Bファイル.xls")
 End If
 Workbooks("Bファイル.xls").Sheets("βシート").Range("A1:A10").Copy
 Workbooks("Bファイル.xls").Close False
 Range("A1").Select
 ActiveSheet.Paste
End Sub

ただ複数のシートを操作する場合、
 Range("A1").Select
のような箇所は
 Workbooks("Aブック.xls").Sheets("αシート").Range("A1").Select
のようにオブジェクトを明示する方が良いと思います。
    • good
    • 0

(3)と(4)を入替えてみては?



というか
(1) Aファイルのαシートから操作する。
(2) Bファイルを開いて、βシートの一部をコピーしAファイルのαシートに貼り付け
(3) Bファイルを閉じる(保存なし・各種アラートなし)
でしょうか。
    • good
    • 1

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