• 締切済み

特定ファイルの数式を複数ファイルにコピー

こんばんは。マクロ初心者です。 下記のようなマクロは作れますでしょうか。 ・Aというファイルがあり、同じ形式でB~Zというファイルがあります。 ・A~Z全て同じフォルダに格納されています。 ・全ファイル1シートずつで構成されており、Aのファイルには値は入っておらず数式のみが入っていて、B~Zは値は入っていますが数式が入っていません。 このB~ZのファイルにAの数式シートを元に数式のコピーをしたいのですが可能でしょうか。 その際、空白セルは無視して数式を貼り付けたいのです。(値は活かしたい) どのファイル(B~Z)も1シートづつの構成なので特にシートの指定はいらないと思うのですが もし可能なら、右から何番目のシートに貼り付ける、などの指定もできますか? (Aの○○というシートを、フォルダ内全ファイルの右から1番目のシートへ貼り付ける、等) VBAにお詳しいかた、ぜひご教示ください。よろしくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

回答頼りの、丸投げの質問のようだ。少しはGoogleでも調べてやってみるべき。 (1)ブックのコピー((注)下記(2)が作業的には先です) 「エクセル vba ブックのコピー」 でGoogle照会。 http://excelwork.info/excel/booksavecopyas/ など多数。 ブックのコピーを保存(SaveCopyAs メソッド) これをFor Nextで26回繰り返せばよい。 コピーして、できたブックの名前は、プログラムの中に配列にブック名の26個の名前の文字列を作って、次々に配列の要素を進めて、それを使えばよい。すべて「月報X」のような名前にするなら、配列は不要で、名前+αで、αはプログラムで創出できよう。 (2)原本ブックの作り方 式だけ残して、元データはクリアする方法。 原本ブックのコピーを作る。作業用にする。 そのブックのコピーのデータのある1シート(>1シートづつの構成、らしいので)について 式だけ残して、元データはクリアする方法。 範囲指定ーホームー検索と選択ージャンプ―セル選択ー参照元ーすべてのレベルーOK データを参照しているセルを選択している状態になるので、DELETEキーを押す。 テストデータは少なく、本件のタイプ経験も少なく、これでうまく行くか自信がない。うまく行かない場合が在れば教えて。 また他シート参照などないという前提に乗っかったやり方です。 == その場合は、後に良い回答がでるのを 待ってください。 == 上記でダメなら、「エクセル データだけ消したい」でGoogle検索して 下記などを参考にしてください。 http://www.tku.ac.jp/iss/guide/classroom/tipspc/tipsexcel/del.html 計算式はそのままで値だけを一括削除する http://www.moug.net/tech/exopr/0030077.html 数式を残して値のみを削除する| もやってみてください。

関連するQ&A

  • 違うファイルに数式の入ったシートをコピーしたい

    Excel2010です。 ファイルA、Bのそれぞれのシートには、同じ名前をつけてあります。 ファイルAのシート1には、他のシートを参照した数式を入力しました。 そのシート1を丸ごと、ファイルBにコピーすると、その数式は、ファイルAのデータが参照され、「='ファイルA'数式」となります。 数式のみをコピーしても同じでした。 ファイル名を入れずに、「=数式」となるようにコピーしたいのですが、どのようにすればいいでしょうか? 教えてください。 よろしくお願いします。

  • 複数のエクセルファイルを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に入力したものが、Sheet2の指定したセルに自動的に入るようにしたいのですが、量が多いため、入れた数式をコピーするときにわからないことがあります。 Sheet1の、 A3、B3、C3、D3・・・に入力した数字を Sheet2の、 B2、B3、C2、C3・・・に勝手に入ってほしいのです。 Sheet2のB2に、=Sheet1!A3 Sheet2のB3に、=Sheet1!B3 と数式を入れれば反映されるのはわかります。 でも、数式を一つずつ入れていくのはとても大変なので、コピーペーストしたいのですが、 Sheet2のB4には、Sheet1のA4の数字をいれたいのに、エクセル側のかしこい機能なのか、 Sheet1のA5となってしまいますよね。 上記のような規則性で何百行も作っていかないといけないので、どうしたものかと思って困っております。 とても説明が下手でわかりにくいと思いますが、伝わりますでしょうか? 画像を添付しているので、このような形式で左のデータを右のような形式のものに反映させたいです。 やり方を教えて頂けるとても助かります。 宜しくお願いします。

  • エクセルVBAでコピーペーストを他ファイルへ

    同一フォルダにAとBのファイルがあり、 ファイルAに、CommandButtonを置き、押下することで、ファイルAのシートAのA1~Z1までをコピーし、 ファイルBを開かず、ファイルBのシートBのA1~Z1までにペーストするVBAを作成しようとしています。 ペースト先のファイルBを開かずに、ペーストしてくれるようなマクロを知りたいです。 エクセルは2002を使用しています。 ご教授お願いいたします。

  • エクセルの数式についての質問です。

    下記の数式で、「一覧!A4:EG1003,137」の「一覧!A4:EG1003,137」が空白の場合に、空白で返す場合の数式をお教えください。 現状の数式 =VLOOKUP(B1,一覧!A4:EG1003,137) 補足説明 エクセルのシート(一覧シート)のA4:EG1003内で137列目が空白の場合は空白で返す数式にしたいです。 VLOOKUPを使用しているので、別シートのB1セルには一覧シートの専用番号の行の値を入力するとその行が全て別シートに反映される形になっています。その時に空白の個所があると0表示になってしまうので、空白は空白で返したいです。

  • 複数シートに跨る数式参照について

    現在、1つのファイルにAシート、Bシートが存在します。 Aシートは、Bシートから値を参照し、数式、条件付き書式、 VBAにて作成されているシートになります。 Bシートにはデータが格納されています。 今回、新しくシートが4つ増えます。(C,D,E,Fとします) 新シートの役割としては、Bシートと同じくデータが登録されます。 そこで質問なのですが、Aシートで全てのシート(B,C,D,E,F)の データを参照をするにあたり、数式を簡単に設定する方法があるか知りたいです。 B,C,D,E,Fシートは、フォーマットが違うため、同じ項目を参照するのでも Bシートでは、H列を参照。Cシートでは、I列を参照など条件が変わるため シート名を覚えておく方法では、うまくいかず、結局数式でIF ELSEIF と 数式を作成する必要があり、参照数も多いためとても手間になります。 【条件】 ・始めにB~Fのどのシートを使用するか選択をします。 選択をしたシート名等は格納しておけます。 ・VBAは使用可能です。 ・参照数は500~1000セル程度。 ・できるだけ後からメンテしやすい形にしたい。 ・条件付き書式はAシートのみで完結しているため、影響はないと思います。 最悪、Aシートを5ケース分作成し、使用シートを選択時にシートの表示・非表示を 切り替えるしかないと今は、考えています。 知恵をお貸し頂ければと思います。

  • エクセル2007で複数ファイル間コピーマクロ

    エクセルでマクロを組もうとしていますが、初歩的なことでつまづいており、ぜひ助けを頂けたらと思います。 VBA言語はほとんどわかりませんが、エクセルでマクロを組んでいます。 一つのワークブック内での登録は問題なく行えるのですが、ワークブック間のコピペをマクロに登録するとうまくいかず困っています。 やりたいことは以下のようなことです。 file.Aのsheet1のA1セル ⇒ file.AAのsheet1のA1セル へコピー file.Bのsheet1のA1セル ⇒ file.BBのsheet1のA1セル へコピー     ・     ・     ・     ・ file.Zのsheet1のA1セル ⇒ file.ZZのsheet1のA1セル へコピー VBAを確認すると、ワークブック名が指定されているため、うまく次のファイルに移行できずにいるようです。 以下が黄色でハイライトされます。 Windows("file.A").Activate 初歩的なことだとは思うのですが、なかなか検索で答えが引っ張りだせないので、A-Zのファイルをコピペできるマクロにするにはどのようにしたら可能なのか教えてください。 よろしくお願いします。

  • 複数あるブックの特定シートの特定範囲を1つにしたい

    EXCEL2010を使用しています。 あるフォルダに格納されている複数のブックの、特定シートを、1つのシートにまとめたいです。 複数のブックの作りは同じです。 1つのブックに、複数シートがあり、"(配置)"というシートだけを、新規のシートにまとめたいです。 <今ある各ブック> ファイル名は、2014年度特定措置_●●.xlsで、●●だけ、ブック名が違います。 シート名が"(配置)"です。 c3セルに部署名が入っています。 b4セルからe10セルまで数式が入っています。 <行いたいこと> 新規のシートのa列に、各ブックにあるc3セルの部署名を持ってきたい。 b列からe列に、各ブックにあるb4セルからe10セルまでの数式を値張りし、取り込みたい。 以上です。 つたない説明で恐縮ですが、大変困っております。 どうか、ご回答の程、どうぞよろしくお願いいたします。

  • 複数のシートを参照する数式について

    複数のシートを参照する数式について Sheet1   A  … 1  3 . . Sheet2   A  … 1  4 2  7 3  8 ←この値(8)をShett3に入れたい . . 上記値が入力されている場合 Sheet3の任意のセルに、Sheet2・A列のSheet1のA1に指定されている値の行を入力したいです。 (Sheet1・A1が1のときは、Sheet3に4、2のときは7、3のときは8を入力したい) この場合、Sheet3にはどのような数式を記載すればよろしいでしょうか?

  • エクセルで数式コピーができなくなりました

    今まで出来ていた数式のコピーが突然出来なくなりました。 というより出来るのですが、値は数式通りではなくそのままの値が コピーされてくるのです。 具体例ですと   A __ B 1__ 1 __ 3 2__ 2 3__ 3 4__ 4 5__ 5 でB2のセルに数式=B1+A2と入れるとB2は5になります。 ここからB2のセルの右下の十字ポインタをドラッグすると   A __ B 1__ 1__ 3 2__ 2__ 5 3__ 3__ 8 4__ 4__ 12 5__ 5__ 17 と現れたのが、今は   A __ B 1__ 1__ 3 2__ 2__ 5 3__ 3__ 5 4__ 4__ 5 5__ 5__ 5 となってしまうのです。 数式バーを確認すると、正しく   A__ B 1__ 1 2__ 2__ =B1+A2 3__ 3__ =B2+A3 4__ 4__ =B3+A4 5__ 5__ =B4+A5 となっています。 コピー、形式を選択して貼り付け、数式を使っても駄目でした。 新しくBookファイルを作ると出来るのですが、 昨日より前に作成したエクセルのファイルが全部そのように なってしまいます。設定をいじった覚えがないのですが どうすればなおりますでしょうか? エクセル2002です。

専門家に質問してみよう