重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

詳しい方、教えて下さい。
あるファイル(Aとします)に、データが入っています。
そのデータを、複数の別ファイル(B,C,Dとします)に一度にコピーできるマクロというのは作成可能でしょうか。具体的には、ファイルAのワークシートに3銘柄の株価データが入っており、それをそれぞれファイルBCDのシート(同じ形式のファイルで、コピーする場所も同じです)に1回のマクロでコピーしたいのです。つまり、BCDのワークシートそれぞれでマクロを作成するのではなく、一発でAからBCDへのコピーができるマクロが可能か知りたいのです。また、そのマクロを動かす時に、BCDファイルを開いていなくともコピーはできるのでしょうか。少しわかりにくい質問かもしれませんが、宜しくお願い致します。

A 回答 (2件)

マクロというのは,手動ではイチイチ手順を追って操作して行かなきゃならない一連の操作を,1クリックでつるつるっと続けて自動的に行ってくれる自動手順のことです。


つまり,「一度にコピーする」んじゃなく,「手動では3回コピーしなきゃならないところを,マクロに3回コピーさせる動作を1クリックで行う」ワケです。あるいは「ブックBCDを開かずにコピーする(貼り付ける)」じゃなく,「Bを開いて貼り付ける。続けてCを開いて貼り付ける。続けてDを開いて貼り付ける。(必要に応じて更にBCDを保存して閉じる)」といった動作を,1クリックで行います。

#言葉を換えると,いかなマクロといえども「エクセルに出来ないこと」はマクロを使っても出来ません。
たとえば「ブックBCDに一度に貼り付ける」とか。「開いていないブックに貼り付けを行う」とか。




前置きが長くなりましたが。
コピー元のAブックに以下のマクロを登録して実行する。もちろんAを開いた状態で作業を開始する。

sub macro1()
application.screenupdating = false
’BCDを開く
workbooks.open filename:="c:\不明の場所の\B.xls"
workbooks.open filename:="c:\不明の場所の\C.xls"
workbooks.open filename:="c:\不明の場所の\D.xls"

’BCDに貼り付ける(一体どこにある何を?)
thisworkbook.worksheets("コピー元のシート名").range("A1").copy _
 destination:=workbooks("B.xls").worksheets("シート名").range("A1")
thisworkbook.worksheets("コピー元のシート名").range("A1").copy _
 destination:=workbooks("C.xls").worksheets("シート名").range("A1")
thisworkbook.worksheets("コピー元のシート名").range("A1").copy _
 destination:=workbooks("D.xls").worksheets("シート名").range("A1")

’BCDを保存して閉じる
workbooks("B.xls").close savechanges:=true
workbooks("C.xls").close savechanges:=true
workbooks("D.xls").close savechanges:=true
application.screenupdating = true
end sub



#余談
試しに「BCDを開く →BCDに貼り付ける →BCDを保存して閉じる」というマクロを示しましたが,もしそうしたければ「Bを開いて貼り付けて閉じる,Cを開いて貼り付けて閉じる,Dを開いて貼り付けて閉じる」といった手順にしても勿論構いません。
趣味と,実際にヤリタイ事に応じて合理的に工夫してご自分でもマクロを(=どういう手順で具体的に一体”何”をすればごジブンのヤリタイ事が実現できるのか,脳トレしながら考えて)作成してみてください。
    • good
    • 0
この回答へのお礼

お忙しい中、ご丁寧な回答を頂きありがとうございました。マクロの考え方が良く理解できました。やはり1つ1つ手順を踏んでやるしかないようですね。頂いたマクロ活用させて頂き、いろいろ試行錯誤してみます。ありがとうございました。

お礼日時:2011/08/31 08:43

コマンドは忘れましたが、マクロの中にファイルを指定して開き、コピーペーストして保存することは可能ですよ。


マクロをファイルAにBCDそれぞれ用で作成すればできます。
因みにマクロで別の名前で新しくファイルを作成することも可能です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。いろいろ試してみます。

お礼日時:2011/08/31 08:45

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