• ベストアンサー

エクセル)VBAで他のブックのセル参照

はじめまして。 エクセルのVBAについて教えてください。 VBAで、 book1のsheet1のセルA1にあるデータを開いていない(アクティブでない)別のbook2のsheet2のセルB1にコピーしたいのですがこんなことってできるのでしょうか? ・・やはり開いていないとダメなんでしょうか? あと、これって"ブック参照"っていうことなんでしょうか?自分がやりたいことが何なのか判らないので上手く調べる事が出来ず難儀しています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.3

No.2のものです。 間違ってました。 sub test() Sheets("sheet1").Select Range("a1").Copy Workbooks.Open(Filename:="c:\BOOK2.XLS").RunAutoMacros Which:=xlAutoOpen Sheets("sheet2").Range("b2").PasteSpecial Paste:=xlValues Application.CutCopyMode = False Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close end sub でした。

kero-pon
質問者

お礼

ありがとうございました。 やはりいったん開くことは必要なのですね。 丁寧な対応、感謝いたします。

その他の回答 (2)

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.2

可能ですよ! Sub test() Sheets("sheet1").Range("a1").Copy Workbooks.Open(Filename:="c:\BOOK2.XLS").RunAutoMacros Which:=xlAutoOpen Windows("BOOK2.XLS").Activate ActiveWorkbook.Sheets("sheet2").Range("b2").PasteSpecial Paste:=xlValues Application.CutCopyMode = False ActiveWorkbook.Saved = True ActiveWorkbook.Close End Sub

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.1

開いていないブックには書きこめないのでVBAでbook2を開いて書きこむことになります。 参照として書きこみたいならB2セルには ='C:\My Documents\[book1.xls]Sheet1'!$A$1 のような数式を書きこむことになると思います。

kero-pon
質問者

お礼

ありがとうございます。 やっぱりいったん開くことは必要なのですね。 もしかすると何かウラ技とかあるのでは無いかなと 思ってました。(そんな都合の良いこと無いですよね)

関連するQ&A