エクセルのワークシートを自動でコピーする方法とは?

このQ&Aのポイント
  • エクセルのワークシートを自動でコピーする方法について教えてください。
  • 現在、週報のマスターとして1ファイルで1週間分の5シートを使用しています。手動でワークシートをコピーしていますが、自動化したいです。VBAの記事を読んでコピーする方法を学びましたが、日付ごとのワークシート名をつける方法がわかりません。
  • エクセルでワークシートを自動でコピーするには、VBAを使用する方法があります。週報のマスターとして使用している1ファイルの5シートを自動でコピーすることができます。VBAを使用することで、日付ごとにワークシートを作成し、指定した数だけコピーすることができます。具体的な方法は、Web上のVBAの記事を参考にしてください。
回答を見る
  • ベストアンサー

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

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

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

>指定した枚数コピーできることはわかったのですが、A1セルに日付を入れ、日付ごとのワークシート名をつける、その週をどう指定するのかが不明です。 では、その部分のサンプルのみ示しましょう。 Sub Sample()  Dim dt As String, st As Worksheet  da = #12/24/2008#     '←サンプルの日付(DATE型)  Set st = ActiveSheet  dt = Format(da, "yyyy") & "年" & Format(da, "mm")  dt = dt & "月" & Format(da, "dd") & "日"  st.Range("A1") = dt     '←A1セルに日付を入れる  st.Name = dt         '←シートの名前を日付けと同じにする End Sub

sti_test
質問者

お礼

ありがとうございます。 お蔭様で作成が完了しました^^

関連するQ&A

  • エクセル:ワークシートを自動で生成&ワークシート名を自動で割り振り

    こんにちは はじめまして エクセルのワークシートを自動で生成するやり方を教えていただけますでしょうか。 やりたいことは以下の通りです。 何件かお店がありまして、毎日の売り上げ報告がファックスで本部に送られてきます。 そのファックスを見ながら、本部ではエクセルに入力し合計と累計を出すようにしています。 今現在は雛形ワークシートを一つ作り、手動でワークシートを30,31日分をコピーし、ブックには「店舗A2006年3月度分.xls」というようなブック名で保存してあります。 うちの会社は10日締めなので、3月で言うと、20060311から20060410(←数字は西暦)までのワークシートを作ります。 ワークシートのイメージとしてはこんな感じです。↓ シート名:店舗A.xls ワークシート名:「雛形」 ---------------------------- 当日の日付 商品A 単価 ○個 小計 商品B 単価 ○個 小計     ・     ・           当日の合計 ---------------------------- そしてこれの「雛形」を、自動で一か月分ワークシートをコピーするようにしたいのです。(今は手動でやってます) VBAの本を読んで、For~Next分を使うと、指定した枚数コピーできることはわかったのですが、ご承知の通り30日の月もあれば31日の月もありまして、これを計算で自動に判断するようにできないでしょうか? 欲を言えば、さらにそのワークシート名も自動で「A店舗20060311」というように日付ごとのワークシート名を入れられるようになると助かります。 もっと欲を言えば、各ワークシートの特定のセルに当日の日付を入れてるのですが(セル番地はどこでもいいです)、そこの日付も、ワークシート名と連動して自動で入れられると助かります。 長文になってしまいましたが、どなたか教えていただけると助かります。 よろしくお願いいたします。

  • EXCEL シート名の保護

    EXCEL シート名の保護 雛形となるワークシートを毎月コピーして使っているのですが、よくコピーを忘れて、気がついたら雛形シートに書き込んでしまっているミスが多発しています。 コピーした月毎のシートは、その後シート名をその月にし、マクロを実行するとその月の日付など細かな書式の変更が行われます。 マクロは、シート名がその月になっていないとエラーが出ます。にも関わらず雛形が書き換えられるということは、このミスを犯した人は、シートのコピーは忘れたけれどもシート名の書き換えは忘れなかったということです。(だったら、自分が書き換えようとしているシートの名前を見て気づけよ・・・) そこで、雛形シートのみ、シート名が書き換えられないようにすることは出来るでしょうか? とりあえず、   「ツール」→「保護」→「シートの保護」 を試みたのですが、保護項目を全てチェックしても、シート名の保護は出来ませんでした。 よろしくお願いします。

  • シートをコピー、シート名を変更

    Windows8でExcel2000を使っています。 こういうマクロはどう書けばいいんでしょうか? 同一ファイル内で、シートを複数枚コピー。 複数選択したセルに入力された文字列を、上記でコピーされたシート名に反映したい。 「原本」というシート名のシートがあり、それを元に一年分の表を作りたいのですが 今は手で11枚コピーを作った後1枚ずつ名前変更でやっています。 シート名にしたい文字列は現在なら「2015年01月」~「2015年12月」です。 セルに「2015年01月」~「2015年12月」を入力、選択した後マクロ実行で シート名変更に反映できればありがたいです。

  • Excelで指定したワークシートを開かせたい

    Excelで指定したワークシートを開かせたいのですが、方法がわかりません。お知恵をお貸しください。 Excelを開いたときにメッセージボックスで開きたい日付のワークシートを指定して開かせるようにしたのですが方法がわかりません。 Excelのファイルは次のようになっています。 ワークシートは、1~31まで31のシートがあります。 Excelファイルを開いたときにどのファイルを開くか訪ね、該当するシートを開きたい。 日付入力が、「07月02日」ならワークシート名の2を、「07月05日」ならワークシート名の5を開かせたいのですが、方法がわかりません。 申し訳ありませんが、お力をお貸しください。

  • 変化するワークシート名にハイパーリンクで移動したい

    いつもお世話になります。 下に示す 左の月間シートのD6に月数を入れるとA4以下の日付が変わり、 右の日付シートのA1の日付も同時に変更されます。 それにともなって、ワークシートの名前が「**日」と月が変わるごとにシート名も 変わるようにしました。 しかし、左のシートのA列の「*月*日」の日付をクリックするとその日付に移動するように ハイパーリンクを設定していましたが、今の設定では、ワークシート名が変わるとリンクができなくなります。 もともと、毎月の締めの関係で、21日~月末~20日の順に左の月間ページのA列は並んでいる関係上、2月と3月の様にに日数が変わると途中で月末が来るので月初である1日以降の日付と日付シートが合わなくなるので、シート名を固定の連番(1~31)にし、左の月間シートの日付をクリックしてそのページに移動するようにしていました。しかし、ワークシート名が日付に合わせて、自動で何とか変えることが出来たので、日付とワークシート名が一致したのは良かったのですが、日付をクリックしてその日のシートに移動するという便利のいいことが出来なくなったという次第です。 ハイパーリンクを諦めるか、シート名を変えるのを諦めるのかどちらかしかないのでしょうか? 何か良い方法は無いものでしょうか? どうか、お知恵を拝借させて下さい。 よろしくお願いいたします。

  • Excelシートの自動コピーでマクロを使いたい

    表題通り、Excelシートの自動コピーをマクロを使って行いたいのですが、 マクロやVBAの知識が全くないため、どなたかコードを教えていただけないでしょうか。 まず今現在、B1セルに9月1日と日付を入れ、シート名を1日としたものがあります。 これを自動で複製して、B1セルの日付を9月2日 9月3日… シート名を2日 3日…となるように、日毎ごとの一ヶ月分のシートを作り ひとつのbookにしたいと考えております。 また、その際に、B1セルとシート名の日付が日曜・祭日に当たる場合、 シート名に色を付けたいと思っています。 (因みにB1セルの日付はシリアル値で入れていて、 書式で○月○日となるように表示していて、日付が日曜・祭日に当たる場合は 赤文字になるよう、別シートに祝日リストも作って 条件付き書式で設定してあります。) Excelの関数は使えても、マクロは全く分からないので どうかよろしくお願い致します。

  • HTMLで、エクセルのワークシートへリンク

    HTMLで、エクセル内のワークシートへリンクさせたいのですが その絶対パスの書き方がわかりません。 C:\Documentsから始まって~\エクセル\●●.xlsで、 エクセルフォルダ内、 ●●のエクセルファイルまでは開くことができました。 で、さらに、 そのエクセルの中のワークシートまで指定したいのですが、 ワークシートのパスは どのように書けばいいのでしょうか? ●●.xls\ワークシート名 では開きませんでした。 よろしくお願いします。

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

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

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

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

  • ワークシートの印刷設定をコピーする。

    ワークシートの印刷設定をコピーする。 雛形シートのコピーを新しいシートにペーストするマクロを組んでいます。 雛形シートで  Cells.Copy 新しいシートで  Selection.Paste これで一応、コピー&ペーストできますが、印刷設定がまるで移植されていないので、  dim PS as PageSetUp として、雛形シートで  Set PS=ActiveSheet.PageSetUp 新しいシートで  Set ActiveSheet.PageSetUp=PS としたのですが、  実行時エラー '438':  オブジェクトは、このプロパティまたはメソッドをサポートしていません。 となりました。  Set ActiveSheet.PageSetup=PS というコードをどう改めたら良いのか分かりません。 あるいはもっと簡単な方法があったらご教授ください。

専門家に質問してみよう