すぐに役立つエクセルVBAマクロ集 すぐマク
すぐに役立つ Excel VBA マクロ集 Excel VBA Macro
FAQ
Google
 
Home |  What's New! |  Gallery |  Introduction |  Service |  Profile 500連発・組み方講座フォロー Big Color Pallet
[広告]
Excel VBA Macro
Excel DownLoad
© 1997 - 2007
永井善王.
All RightsReserved.
HappyTech & Co., Ltd.
www.happy500z.com
Excel VBA Macro ・ コピー ・ FAQ
開いてないブックのセルの内容をコピーして別ブックのシートに貼り付けるには?
Question 73.1 Previous Next
AとBのブックがあります。 BのA1:Z50の内容をBを開かずに、Aのブックのシートに貼り付けることはできますか??
Answer   Copyright (C) 2005.5.9 永井善王
♪とんちんかんちん一休さん♪ と歌が聞こえてきそうですが、そうしたい事情がお有りなのでしょうね。
セルの内容をコピーするためには、通常、それを含むブックが開いている必要があります。
ご質問文が非常に短く、セルの
内容をコピーして何を貼り付けしたいのか、つまり、「すべて」なのか「値」なのか等、貼り付ける部分が分かりません。
よって、以下の回答は「値」を貼り付けることにして、そのためのマクロをお示しします。 school
Sub 開いてないブックのセルの内容をコピーして値を貼り付ける()
10  コピー元パス = "BookB.xls"
20  Range("A1").FormulaR1C1 = "=[" & コピー元パス & "]Sheet1!RC"
30  Range("A1").Copy
40  Range("A1:Z50").PasteSpecial Paste:=xlPasteFormulas
50  Selection.Copy
60  Selection.PasteSpecial Paste:=xlPasteValues
End Sub
このマクロは、BookA.xlsに作成しておきます。各行のコードの意味を簡単に解説します。
10 ・・ コピー元へのパスをブック名を含めて指定。この場合 BookA.xlsと同フォルダにあるとしてフォルダパスを省略。
20 ・・ BookA.xlsのA1セルへ数式をセット。 =[BookB.xls]Sheet1!A1
30〜40 ・・ A1セルをコピーして、A1:Z50セル範囲へ数式を貼り付ける
50〜60 ・・ 選択中のセル範囲(A1:Z50)をコピーして、選択中のセル範囲へ値を貼り付ける

貼り付ける部分を変更したければ、60行目の PasteSpecialメソッドの引数Pasteの指定を変更します。
なお、頭を柔らかくして考えれば、他にも色々な方法があろうかと思われます。 もし暇があれば、パズルするつもりで考えてみると楽しいかも知れませんね。
Click here to visit our sponsor