• 締切済み

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

検索してみたのですが、自分で解決することができなかったので質問させていただきます。 毎日作成されるエクセルファイルがあり、そのファイルには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

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3コピー元ワークシート3 という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3ワークシート という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • Excel97:ワークシートをコピーすると日付が1日若く更新される

    表記のとおりです。 Excel97で、マクロ入りのある管理簿を作成しています。 提出物として、マクロがかかっていない完成版のワークシートを別に保存する時、ワークシートをコピーしてから「名前を付けて保存」するやり方をしてます。でもなぜかその時日付が1日分だけ若く更新されるのです。 その他には、コピーさせずに移動でワークシートを切り離しても同じことが起こります。でも再びそのファイルに戻すと日付もまた元に戻ります。ちなみに日付には「3/4」という表示形式が選択されています。 この現象はずっと今まで気付かなかったんですが、これまでの提出用の完成版ファイルを確認したら全てそうなっていました。念のため、違うファイルの日付がある表でワークシートのコピーをしてみたんですが、この時は大丈夫でした。 どうやら、このマクロ入りの、それもファイルの種類が「Excel97および5.0/95ブック」のファイルだけがそうなるようです。 でも、複雑なマクロが組み込まれているので、ファイル自体を再作成して改めて上バージョンで保存させるのは大変です。周りの人に聞いてみたら、「多分97のバグだろう。MicrosoftのExcelバグ対応のページを見れば何かあるかも」と教えてもらったので見たんですが、数ある中でこの現象には何が対応してるのかさっぱり分かりません。 一応先月度の提出物は、ファイルを全コピーさせ、マクロ入りのいらないワークシートを全て削除する方法で作成しました。でもワークシートの数が多いしメモリも重い物なのでやっぱり少しやりにくいですね。毎月のことだのでもっと良いやり方にしたいものです。 長くなりましたが、どなたか正しい対応の仕方、また何故このような現象が起こるのか教えて下さい。

  • PerlでExcelのワークシートを同じファイル内にコピーしたりワーク

    PerlでExcelのワークシートを同じファイル内にコピーしたりワークシートの名前を変更することは可能でしょうか? 環境は、WindowsXPpro、IIS5.1、PerlV5.10でWin32_OLEモジュールを使用しています PerlでExcelのワークシート内セルに書き込み・セルからの読み出しはできています。 VBAではワークシートをコピーする場合は、 「Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")」 でコピーできるようですが、 Perlではどう記述すれば良いか分かりません。 Perlではワークシートをコピーしたりワークシートの名前を変更することは出来ないのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • エクセルのワークシートが重くなる!

    たまにエクセルで起きるのですが、 特定のワークシートが重くなる(キー、マウス操作の待ち時間が長い。RAMメモリ不足から来る重さの感覚に近い。)ことありませんか。 その原因、対処方法がわかる方はいないでしょうか。 そのワークシートの特徴、及び使用環境を以下に書きます。 (1)画面のスクロールが重くなる。 (キー、マウスどちらでも) (2)セル入力すると重くなる。(内容消去でも重くなる) (3)データ量は必ずしも大きくない。(1シートのみのファイルで数十キロでも起こる) (4)重いワークシートをシートコピーすると、そのコピー(Sheet(2))は必ず重くなる。 (5)重くないワークシートをシートコピーしても、そのコピー(Sheet(2))が重くなることがある(ほとんど起きないが過去数例あった)。 (6)新規の空のワークシートを作成し重いワークシートのデータを「全範囲コピー」し、新規ワークシートに「貼り付け」ると重くならない。 (7)マクロの有無によらない。 (8)外部参照ファイル(リンク)の有無によらない。  当社はウイルスバスターのコーポレートエディションを導入しインターネット経由でネットワーク内全てのパソコンのおいて随時パターンプログラムを更新していますので、コンピュータウイルスではないと推測しています。 たまにしかめぐり合わないので、(6)で対処しています。 以下に私の使用している環境を示しますが、他のPCでも同様に起こるので、どうもハードではなくファイルそのものに問題があるのでは思っています。 (環境) OS:Windows2000SP3 AP:EXCEL2002 CPU:CELERON 1.5G HDD:20G MEM:256M

  • EXCELのシート間でのマクロ計算

    毎日の日報をEXCELのワークシートで作成しております。日報は、その「日」の売上とその「月」の売上(累計)を出すようにしております。月の売上(累計)は、前日の売上のシート(前日分)+本日の売上のシート(本日分)で表しております。日報は、項目がたくさんあるので、月売上を出す場合、シート間での毎日の計算作業が面倒です。ですから、この計算作業をマクロで出来ればと思っております。1つのシートでマクロを使用することは解るのですが、シート間でマクロを利用するやり方がわかりません。 なにとぞ、よろしくお願いいたします。

  • ワークシートを自動でコピー&ワークシート名を自動変更

    こんにちは はじめまして エクセルのワークシートを自動でコピーするやり方を教えていただけますでしょうか。 やりたいことは以下の通りです。 週報のマスターがありまして、1ファイルで1週間分である5シート、マスターからコピーしています。 今現在は雛形ワークシートを一つ作り、手動でワークシートを5日分をコピーし、ファイル名は「名前2008年6月23日-2008年6月27日.xls」という名前で保存してあります。 週報なので、ワークシート1つに月日を入れており、シート内のA1にも年月日を入れております。 ワークシートのイメージとしてはこんな感じです。↓ シート名:週報マスター.xls ワークシート名:「雛形」 ---------------------------- 2008年**月**日 勤務時間: 作業内容: ・・ ・・ ・・ ---------------------------- そしてこれの「雛形」を、自動で1週間分(5ワークシート)、ワークシートをコピーするようにしたいのです。(今は手動でやってます) WebでVBAの記事を読んで、指定した枚数コピーできることはわかったのですが、A1セルに日付を入れ、日付ごとのワークシート名をつける、 その週をどう指定するのかが不明です。 長文になってしまいましたが、どなたか教えていただけると助かります。 よろしくお願いいたします。

  • 特定のブックにアクティブシートをコピーさせる方法

    日報というファイルに、アクティブシートをコピーさせるマクロを作るには、どういう記述をしたら良いでしょうか? 既出でしたら申し訳ありません。 よろしくご伝授をお願いいたします。

  • エクセルVBA ワークシート操作について

    エクセル2000 VBAで ワークシートが左から順番に 入力フォーム⇒加工費単価マスタ⇒出荷日報(原紙)と 3個あり4個目に出荷日報(原紙)をコピーしたワークシートを 入力して⇒テキストボックス1 (日付入力します出来れば、日付入力の指定方法⇒テキストボックスの入力制限方法も教えていただきたいです)に入力した名前を ワークシートに付けて保存したいのですが? 翌日は また左から4番目の位置にコピーされ 右に行くほど古い日付の順番にしたいです。 説明が不足していましたら連絡お願いします。

  • エクセル・シートコピーの際のマクロについて

    教えてください。 エクセルで、マクロを組んでいる月毎の勤務表を1つのシートとし、月が替わるたびにシートコピーをし増やしていきましたら、1つのファイル内にシートが多くなった為に、ファイル動作(保存等)が遅くなりました。 そこで、ファイルのコピーをし、別ファイルで管理し、再度、同じように作業していこうかと思っております。 しかし、ファイルのコピーをし、そのファイル内のマクロを実行しましたら、何故か、コピー元のファイルも一緒に開いてしまいます。マクロ情報がコピー元にあるからかと思いますが、このマクロ実行時にファイルが開かないようにする方法はありますか? よろしくお願い致します

専門家に質問してみよう