複数のファイルにまたがるマクロについて

このQ&Aのポイント
  • 複数のファイルにまたがるマクロとは、あるファイルに入っているデータを複数の別ファイルに一度にコピーするためのマクロのことです。
  • 例えば、ファイルAに株価データが入っていて、ファイルB、ファイルC、ファイルDにそれぞれコピーしたい場合、個々のファイルにマクロを作成するのではなく、一つのマクロで一度にコピーすることができます。
  • また、このマクロを動かす際には、コピー先のファイル(ファイルB、ファイルC、ファイルD)を開いていなくてもコピーすることが可能です。
回答を見る
  • ベストアンサー

複数のファイルにまたがるマクロについて

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.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を開いて貼り付けて閉じる」といった手順にしても勿論構いません。 趣味と,実際にヤリタイ事に応じて合理的に工夫してご自分でもマクロを(=どういう手順で具体的に一体”何”をすればごジブンのヤリタイ事が実現できるのか,脳トレしながら考えて)作成してみてください。

maochin43
質問者

お礼

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

その他の回答 (1)

  • R48
  • ベストアンサー率24% (683/2741)
回答No.1

コマンドは忘れましたが、マクロの中にファイルを指定して開き、コピーペーストして保存することは可能ですよ。 マクロをファイルAにBCDそれぞれ用で作成すればできます。 因みにマクロで別の名前で新しくファイルを作成することも可能です。

maochin43
質問者

お礼

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

関連するQ&A

  • マクロ 同じフォーマットのそれぞれのファイルから データをコピーペーストする方法

    お世話になります。 マクロを使って 共通フォーマットの複数のファイルのデータを 別なエクセルファイルに コピーペーストするやり方を教えていただけないでしょうか。 複数のファイルは共通のフォーマットです。しかし保存名と内容は違っています。フォーマット化されていない部分のデータをコピーし、仮にAというファイルの一部分に貼り付けるというものです。 具体的には 名前:●●●   ←この●●●だけをコピーする ファイルA   名前:□□□   ←●●●データを□□□位置にペースト この作業を繰り返すというものです。 個人用マクロブックにマクロを作ってみたのですが作成したときのファイルのデータまで記録されていて マクロが動いても その時のデータが張り付いてしまって困ります。 ●●●のところを「現在開いているエクセル」とか命令すればいいのでしょうかね・・・。 いいやり方を教えて下さい。

  • Excel VBAマクロで複数のファイルから読み出し

    Excel2002を使用して、以下のような処理を実現しようとしています。 1. ある特定のフォルダに格納されている複数の *.xls ファイルを順番に開く 2. 先頭のシートの特定のセル(例えばA1~D1)の値をコピーして、適当なBOOKのSheet1に上から順に貼り付け、表にする。(最初はA1~D1に貼り付け、次はA2~D2、A3~D4・・・とファイルの数だけ繰り返す) 上記1.の実現方法がよく分かりません。ヘルプを見てもどうも要領を得なくて。 JavaやC,C++のプログラミング経験はあります。 また、VBAマクロも簡単なものなら作成経験があります。 よろしくおねがいします。

  • 複数ファイルを指定して取り込み、そのデータを集計してくれるマクロの作り

    複数ファイルを指定して取り込み、そのデータを集計してくれるマクロの作り方を教えてください! 初めての投稿なので、質問が分かりづらいかもしれませんが、ご容赦ください(>_<) その際は指摘してくだされば書き足します! マクロ初心者です。 今回、以下のような条件を可能にしてくれるマクロを作りたいです。 ・他ファイルから取り込んだシートを、作業中のブックに新しいシートとして追加する  (取り込む内容は数値が違うだけで、同じフォーマットのデータです) ・取り込むシートの数は場合によって異なるので、何枚でも追加できるようにしたい ・出来ればその追加したシートにそれぞれ名前をつけたい(データA,データBなど) ・追加されたシートのデータを最後に集計する  (例えば・・・追加されたデータAとデータBのセルA1を足した値を集計シートのA1セルに入れる) 雛形の枠があって、その中に別ファイルから取り込んだデータをコピーして、その枠の中に入れることはできたのですが、新しくシートをどんどん追加していくのができませんでした。 どうか、よろしくお願いしますm(__)m

  • 複数ファイルからデータを一括コピペするマクロ

    同じブックの中に複数ファイルがあります。ファイルはどれも同一のフォーマットです。 それぞれにシートが3つあるのですがこの3つの中のシートの中の1つのシートのA1からA10と B1からB10のデータを抽出してきて同じブックの中の「まとめ」とあるシートのB1:K1・B2:K2に縦横変換してコピペをしたいです。 ファイルが60くらいあるので繰り返し開いてコピペしての作業が大変なので これを繰り返し下どんどんファイルからコピペしたいです。 1つのファイルから2行まとめにコピペするのですが、マクロで簡単に作業できる方法はないでしょうか? またファイル名をまとめシートA1にも記載したいのですが、可能でしょうか? 記録マクロで作成しようと思ったのですが複数ファイルを次々「まとめ」シートに羅列ができず。。 お力を貸していただきたいです。 よろしくお願い致します。

  • エクセル 複数シートのデータを1シートにまとめるマクロ

    エクセルの複数シートにデータがあります。同じ条件の人のデータだけをひとつのシートにまとめたいのですが、マクロを教えていただけますでしょうか。それとも、マクロ以外に良い方法がありますか? エクセル初心者なので、あたりまえのことも知らないかもしれません。。。  【データ】 ●シート1からシート20まで、同じ配列でデータがあります。 ●1行目は見出しです。2行目から1人づつのデータです。(多くても65行までと思っています。) ●A列に到達度、B列に出欠をいれました。 ●C列からM列が氏名、課題、その他のデータです。 ●リストはシート21にあります。  【こんな作業でしょうか?】 ●シート1から20で A列が「C」または「D」ならば その行のA列からM列をコピーして シート21のA列からM列に形式を値にして張り付ける ●シート1から20で B列が「欠」ならば その行のA列からM列をコピーしてシート21のA列からM列に形式を値にして張り付ける (っというのが私の乏しい知識で考えた方法なのですが、これでは不具合がでますか? もちろん、この方法じゃなくもっといいのがあれば、それをやってみたいです。)

  • 複数のエクセルファイルを1つのエクセルファイルのシートにコピーをマクロ

    複数のエクセルファイルを1つのエクセルファイルのシートにコピーをマクロで行いたい。 マイドキュメントのデーターというフォルダ内に エクセルファイルA(シート名みかん) エクセルファイルB(シート名りんご) エクセルファイルC(シート名バナナ) エクセルファイルD(シート名ぶどう) エクセルファイルE(シート名いちご) があります。 雛形は同じです。すべてA列~F列までデータが入っています。 行数はファイルによって違います。 また毎日自動で上書き更新され、毎日行数が変わります。 エクセルファイルZがあります。シートが7個あります。 ・変換 ・集計 ・みかん ・りんご ・バナナ ・ぶどう ・いちご エクセルファイルZを開きます。(各シートには昨日のデータが貼り付けてあります。) マイドキュメントのデーターフォルダも開いておきます。 エクセルファイルZにおいて「マクロの記録」を起動。 エクセルファイルZの 【みかん】~【いちご】までの5シートを全データDELETEします。 開いてあるフォルダ「データー」の中からエクセルファイルAを開きます。 (タスクバーにいます) ファイルAのシート【みかん】の全データ選択して エクセルファイルZの【みかん】というシートのA1セルにカーソルを あわせて貼り付けします。 開いてあるフォルダ「データー」の中からエクセルファイルBを開きます。 (タスクバーにいます) ファイルBのシート【りんご】の全データ選択して エクセルファイルZの【りんご】というシートのA1セルにカーソルを あわせて貼り付けします。 これと同じ操作を【バナナ】【ぶどう】【いちご】も行います。 エクセルファイルZにおいて「マクロの記録」を終了させます。 マクロができあがりました。 ファイルZを上書き保存して終了。再立ち上げで記録したマクロを実行。 エラーにはなりませんが、ファイルZの5種類各シートに ファイルA~Eのデータが貼りつきません。 何か無理な事をしているのでしょうか? もしかしてシート名が同じだと駄目?とためしにファイルZのシート名【みかん】~【いちご】を 【みかんZ】~【いちごZ】に変更してマクロを再記録しても 駄目でした。 よろしくお願いします。

  • エクセルのマクロでテキストファイルを生成するには?

    いつもお世話になっております。 マクロで エクセルのSheet1上のA1:A5のデータをコピーして 『吐き出し.txt』というテキストファイルを生成したいのです。 どのようなマクロを書けばよいかご教示ください。 通常の「txt形式で保存」ですと、 データ内に「,」があるため、 テキストファイルだとデータの両端に「"」がついてしまうため 不具合が発生するのです。 なんとかなりませんでしょうか。 よろしくお願いいたします。

  • エクセルのマクロでこういったことはできますでしょうか。

    顧客管理で下記のようなことがしたいと思っています。 マクロ初心者なのですが、こういったことは可能でしょうか。 (1)事前に、顧客管理のデータ入力用ファイル(以下データファイル)、A、B、C、D、Eという定型ファイルを作成しておく。A~Eには、全て複数のシートが入っており、シート1にデータファイルに入力した情報が飛ぶようにしたい。 (2)データファイルに顧客情報「あ」を入力し、シート上に作成しておいたAという名のマクロボタンを押すと、Aのファイルのシート1に「あ」という情報が飛び、さらに、Aファイルは原本なので、“「あ」A”という名前の新しいファイルを作成できるようにしたい。 (3)同じように、データファイルに顧客情報「い」を入力して、今度はBというボタンを押したら、Bファイルのシート1に「い」という情報が飛び、“「い」B”という名前のファイルが新しく作成できるようにしたい。 非常にわかりにくい説明で申し訳ないのですが、これから自分でマクロやVBEを勉強しようと思っており、実際こういったことが可能なのかどうか、ご教示頂けますと幸甚です。何卒よろしくお願い致します。

  • Excel2007 マクロ 複数シートの作成

    Excel2007 マクロ 複数シートの作成 2つのファイルを使用します。 AファイルにBファイルの情報を反映して、会社ごとにシートを作成します。 AファイルとBファイルの画像を添付します。 どのようなマクロを作成すればよいのか教えてください。 よろしくお願いいたします。

  • 別のブックのセルの値をコピーするマクロについて

    ExcelのVBAのマクロに関する質問です。 複数のブックのセルの値をコピーするマクロについての質問なのですが、現在以下のファイルがあります。 サンプル1.xls サンプル2.xls サンプル3.xls データ.xls そして、 サンプル1のセルA1~D1までの値をデータ.xlsファイルのシート1のセルA1~D1まで、 セルA2~D2までの値をデータデータ.xlsファイルのシート2のセルA1~D1まで、 サンプル2のセルA1~D1までの値をデータ.xlsファイルのシート1のセルA2~D2まで、 セルA2~D2までの値をデータデータ.xlsファイルのシート2のセルA2~D2まで、 サンプル3のセルA1~D1までの値をデータ.xlsファイルのシート1のセルA3~D3まで、 セルA2~D2までの値をデータデータ.xlsファイルのシート2のセルA3~D3まで、 上記のような形でコピーしたいのですがマクロがわかりません。 データ.xlsにボタンを作成し、そのボタンを押すとこの処理が実行されるようにしたいです。 どなかた方法を教えていただけますでしょうか。ご回答お待ちしております。 ※ファイルの名前は今回はサンプル1などとしましたが実際は違う名前も使用します。 また、ファイルの数も今回は3つにしましたが増減します。

専門家に質問してみよう