• 締切済み

エクセル-ワークシートのコピー方法

検索してみたのですが、自分で解決することができなかったので質問させていただきます。 毎日作成されるエクセルファイルがあり、そのファイルには14枚のワークシートがあります。 このパターンは毎日同じです。 今回、このファイルの中の1つのワークシートだけを必要としている部署があり、このワークシートだけを拾い出して1年分(365枚)を別のファイルにコピーしたいのですが、 なにかよい方法はありますでしょうか? 365個のファイルを一つずついちいち開けてワークシートをコピーするしかないでしょうか? ちなみにそのファイルは フォルダ「日報」→ フォルダ「2005」「2006」・・・→ フォルダ「1月」「2月」・・・→ 日にち別にファイルが一つずつある状態です。 コピーしたワークシートは月ごとにまとめてファイルしたいと思っています。 ちなみに、当方マクロやVBAにあまり詳しくありません・・・。

みんなの回答

回答No.3

シートはセルの集まりですので参照の基本的なやり方は同じだと思います。 ただ、一年365日分のシートを一つのファイルにまとめるのは無理を感じます。 現在あるファイルをデータベースと考えて、提出用の新たなフォーマットを作成してデータを参照する関数を並べることを検討されたほうが結局は近道のように思います。 別の良い方法がお判りになりましたらまた教えてください。

nomimono
質問者

お礼

HeavensCatさま、たびたびすみません。 自分のイメージがなかなか伝わらないようで 己の文章力のなさを痛感します。 VBAの参考書を本屋でチラっと見てきましたが 一定の作業をマクロで記録して工夫すれば なんとかなるような気がしてきたので 人に頼らず、自分で勉強してみようと思います。

すると、全ての回答が全文表示されます。
回答No.2

その抽出したいデータが特定のセル番地に格納されているなら簡単に実現できます。 Excelは他のシートを下のような書式で参照できます。 =+[ファイル名.xls]シート名!$A$1 これらは文字列ですので、ファイル名やシート名をセルに書き込んで=CONCATENATE()関数でつないでやればよいです。 A B C D E     F 1 =+[  ファイル名.xls   ]   シート名  !$A$1  CONCATENATE(A1,B1,C1,D1,E1) この場合はB列とD列だけを変化させたものを縦に並べて書いておきF列を下にコピーするだけです。 上記の説明でお判りでしょうか?

nomimono
質問者

お礼

HeavensCatさま、 たびたびの回答ありがとうございます。 私は先ほど、間違った説明をしてしまいました。 「特定のデータ」というのは特定のワークシート丸ごと1つという意味でした。 このデータが含まれているワークシートだけを1年分コピーしたかったので 今回の場合は利用できなさそうです。 しかし、これはこれでとても使えそうなので 別の機会にCONCATENATE関数を使ってみたいと思います。 ご協力ありがとうございました。

すると、全ての回答が全文表示されます。
回答No.1

私の使っているExcel2000ではsheetは255までしか使えませんが、nomimonoさんの環境では365枚のシートが使えますでしょうか? マクロを使わずにやるとなりますと一枚一枚コピーするしか手はないと思いますが、たとえマクロを用いて実現したとしてもそのファイルを用いてどのような作業をお考えでしょうか? 最終的に行いたい作業を検討してから最も相応しい編集方法を決めるほうが良いと思います。

nomimono
質問者

お礼

現状のファイルの中には14種類(14枚のワークシート)の日報データがありますが、 その中の特定の一つのデータのみを1年分、外部に提出することになっています。 外部に出すので知られたくないデータが入っているワークシートは除かなくてはいけません。 ファイルは1日分が1ファイルで365個になってもよいし、 ひと月分ずつまとめて月別のファイルにしてもよいのですが、 とにかく365枚分の日報を出すことになります。 ファイルの中のワークシートを 新しいファイルにコピーできる方法があればなぁと思ったのですが とりあえず現段階では私にそのような力量はないので 地道にコピーしていこうと思います。 わかりにくい質問ですみませんでした。 回答、ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A