• 締切済み

excel新ブック作成しシートをコピーし名前つけ

マクロ初心者です。 Excel2003を使っています。 新ブックを作って、指定分のコピーシートを作製し、更にブックとシートに名前をつけて、もっと言えば各シートのセルA2の場所にシート名と同じ日付が入る 夢のようなワンクリックのマクロが出来ないものでしょうか? よろしくお願いいたします。

みんなの回答

  • mar00
  • ベストアンサー率36% (158/430)
回答No.2

補足を読みましたがマクロの内容をほぼ理解できていると思います。 質問してコピーして出来たら終わりという質問者が多い中で、きちんと理解しようとなさっているので 回答した側としても回答してよかったと思います。 >'"\"マークが付いているブックを選びます←勉強不足でどんな時必要なのかわかりません 新しいマクロの記録を実行してみるとわかりますがフォルダ名の後に必ず\がつきます。 次の記述はBook2.xlsを新しいマクロの記録で保存した時の記述です。 ****の部分はフォルダ名が記述されます。 " ActiveWorkbook.SaveAs Filename:= _ ""C:\****\****\****\Book2.xls"", FileFormat:= _ xlNormal, Password:="""", WriteResPassword:="""", ReadOnlyRecommended:=False _ , CreateBackup:=False" myPath = ThisWorkbook.Path & "\"は ThisWorkbook.Pathでコピー元のブックの保存してあるブォルダを取得できるのですが "C:\****\****\****"のような状態で取得されるため& "\"としています。 補足 myFile = Month(x) & "月"はmyFile = Month(x) & "月.xls"としても構いません。 その場合、ActiveWorkbook.SaveAs Filename:=myPath & myFile & ".xls"を ActiveWorkbook.SaveAs Filename:=myPath & myFileとします。 Sheets(2).CopyはSheets("フォーム").Copyとすることもできます。画像を見るとシートが2番目にあったので2としています。 Sheets.Countは一番最後のシートの番号を取得できます。

tomboy2012
質問者

お礼

mar00さん 丁寧な解説、ありがとうございます。 ¥の後にファイル名を入れるって事でしょうか。 やってみます(^^)/

  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

マクロを実行するとインプットボックスが出てくるので今年の2月を作成したい場合、 2012/2と入力して下さい。 新しいブックはコピー元のブックと同じフォルダに保存されます。 Sub Macro1() myPath = ThisWorkbook.Path & "\" x = InputBox("年月を入力して下さい。") bb = Day(DateAdd("m", 1, x) - 1) - 1 myFile = Month(x) & "月" Sheets(2).Copy Sheets(Sheets.Count).Name = Sheets.Count & "日" Range("A2") = Sheets.Count & "日" Do While aa < bb aa = Sheets.Count Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = Sheets.Count & "日" Range("A2") = Sheets.Count & "日" Loop Sheets(1).Select ActiveWorkbook.SaveAs Filename:=myPath & myFile & ".xls" Snd Sub ご希望通りのものであればいいのですが。

tomboy2012
質問者

お礼

とても早いご回答ありがとうございました。 出来ました! 希望どうりで夢のようです。 各シートのA2のセルにシート名と同じ日付を入れるのが出来ないのですが、 セルに入力規制がかかっていたせいかもしれません。 もう一度新しくコピーしてやってみます。 ありがとうございました。

tomboy2012
質問者

補足

Sub Macro1() '"\"マークが付いているブックを選びます←勉強不足でどんな時必要なのかわかりません myPath = ThisWorkbook.Path & "\" 'インプットボックスを開き指定月を入力します x = InputBox("年月を入力して下さい。") '指定された月の最終日を割り出します bb = Day(DateAdd("m", 1, x) - 1) - 1 '指定された月を名前として取得します myFile = Month(x) & "月" 'フォームのシートをコピーします Sheets(2).Copy '1番最初のシートに名前をつけます Sheets(Sheets.Count).Name = Sheets.Count & "日" '一番最初のシートの"X1"に日付を入れます Sheets(Sheets.Count).Range("X1") = Sheets.Count '指定した月の最後の日まで繰り返します Do While aa < bb aa = Sheets.Count '<シートをコピー> Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count) '<シートに名前をつける> Sheets(Sheets.Count).Name = Sheets.Count & "日" '<各シートの"X1"に日付を入れる> Sheets(Sheets.Count).Range("X1") = Sheets.Count 'ここまでを繰り返します Loop '新しく作ったブックの先頭のシートに移動します Sheets(1).Select '新しく作ったブックに月の名前をつけて保存します ActiveWorkbook.SaveAs Filename:=myPath & myFile & ".xls" End Sub これで出来ました(^^) (日付を入れるセルがX1になって"日"を無くしました。) ありがとうございました。m(_ _)m

関連するQ&A

  • EXCEL VBA シートの名前を指定してコピー

    EXCEL VBA 初心者です。 とても困っています。 助けてください。 excel2010を使っています。 今,「原本」というシートがあり,それをマクロを使って同じブック内にコピーしたいと思っています。 コピーして新しく作られたシートの名前は「A1」のセルに入力されている値にしたいです。 コピーされた後のシートにはマクロボタンは削除したいと考えています。 また,コピーした後のアクティブシートは「原本」のシートにしたいのですが これを全部いれたコマンドはどのようになるのでしょうか。 似たような質問だったり,回答があるのですが, どのように組み合わせたらいいのかよく分かりません。 どなたかお助けいただけないでしょうか。 よろしくお願いします。

  • Excel ブック内の指定したデータのコピーマクロ

    よろしくお願いします。 エクセルで自動登録で自動化をしていますが、これだと限界があり今回こちらに書き込みさせていただきました。 流れとしては、マクロスタートでダイアログがでて(可能なら奥底に格納されるブックなのでそのフォルダの一個前辺りの階層指定されて)そこで指定した毎日新しく作られるブック内の指定したシートの指定したセルにあるデータをコピー(ブックは開かないで読み込み)してテンプレートととしている空のブックを開き(開いたまま)指定したシートの指定したセルにペーストするマクロを作りたいです。 (指定したシートと指定したセルの名前は常に同じです) 自動記録で指定したブックを開いて読み込む事は出来ましたが、毎回別のブックなのでそれでは事足りないのです。 ネットで探しましたが… ・ダイアログでファイルを開くマクロは見つけましたが、開いた後内部のデータを読み込むなどマクロは見つかりませんでした。 つながるところがわかりません。 ・(存在するブックの場所指定で)ブックを開かないでその中のデータを読み込むマクロは見つけましたが、ダイアログで選ぶけど開かないでと言う事が出来るマクロは見つけられませんでした これらは元々出来ないのでしょうか? 可能で有ればご教示下ださると助かります。 よろしくお願いします。

  • Excel 同ブックの他シートを参照するセルを、他ブックのセルにコピー

    こんにちは。Excelの使い方について質問させていただきます。 よろしくお願いします。 Excel2003を使っています。 シート数、シート名がまったく同じブックが2つあります。 AブックのAシートのA1セルを参照しているセルである AブックのBシートのA1セルをコピーします。 BブックのBシートのA1セルにペーストします。 BブックのAシートのA1セルを参照して欲しいのですが、 別ブックであるAブックのAシートのA1セルを参照するように 自動的に変換されてしまいます。 シンプルにそのままコピーすることは不可能でしょうか。 セルのコピーでは無く、中の文字列を選択してコピーしても、 何が起こっているのかよくわかりませんが上手くいきません。 Excel初心者です。マクロはまったく使えません。 親切な方、どうぞよろしくお願いします。

  • Excel2007 ブック間でのシートコピー

    Excel2007を使っています。 ブックABCのシート1を、ブックEFGにコピーしたいのですが・・・ コピーしたいシート名(画面下のタブ)を右クリックし、「移動またはコピー」をクリック、「移動先ブック名」でブックEFGを選択したいのですが、「新しいブック」しか選択できません。 新しいブックにコピーしても、それをブックEFGで取り込めれば いいのですが、何か方法はないでしょうか? よろしくお願いします。

  • シートをブックからブックへコピーすると中の日付が変わる

    宜しくお願いします。 タイトルの通り、シートをブックからブックへ「移動またはコピー」でコピー(移動)すると、"日付設定"になっているセルの中の日付が変わってしまいます。 例えば... [2006.1.1] ←セルの設定は日付。 この状態で、このシートを他のブックへ移動すると [2010.1.2] このように、日付が変わってしまいます。 回避する方法や設定があるのでしょうか。 宜しくお願い致します。 MacOSXtiger:Excel2004 for Mac

  • 【Excel 2003】複数のブックのシートを一つのブックにコピーにしたい

    お世話になっております。 【Excel 2003】を使っております。 複数のブックには、複数のシートがありまして、 複数のシートを一つのブックにコピーしたいのですが、 手作業ですと、大変時間がかかります。 現在は、一つ一つブックをあけて、シートのコピーで 一つの新しいブックにいれてます。 なにか、これを簡単にできる方法は、ありませんでしょうか? フリーのソフトでも、マクロでも、教えていただけたら 助かります。よろしくお願いします。

  • 複数ブックを纏めて1ブックの1シートずつにコピー

    仕事で大量の処理をしなければならず、マクロ化を考えています。 どなたかご教示頂けないでしょうか。 大変困っています助けて下さい。 既定ブック(9シート1,2,3,4,5,6,7,8,9と名前をつけています。レイアウトは全て同じです。)をコピーした後に複数のブック(1シートのみです。既定ブックとほぼレイアウトは一緒です。)を指定し、一部分コピーをし、既定ブックに1シートごとペーストし、(担当者により複数ファイル数は異なります)名前付けてブックを保存後閉じるという作業をマクロ化したいと思っています。 500ファイルを担当者別にコピー&ペーストしなければならないので、是非ご教示頂けないでしょうか。何卒お願い致します。 なお、ペースト箇所は以下になります。(全てセルの結合をしております。) 【貼付箇所】 コピー元:Range("G6:P13").Select    → コピー先:Range("G6:P13").Select  コピー元:Range("V5:AD11").Select   → コピー先:Range("V5:AD11").Select 【値貼付箇所】 コピー元:Range("AA23:AD27").Select  → コピー先:Range("AG26:AG30").Select コピー元:Range("G23:Z27").Select    → コピー先:Range("AH26:AH30").Select

  • 別ブックへのシートのコピー(Excel)

    エクセル上で、Aというブックのaというシートを、Bというブックにコピーしようと思っています。 過去の質問を検索したらNo2459324でわかりやすい解答があったので試してみたのですが、 AとBのブックを画面上で両方開いて、Aブックのaシート上で、「編集」→「シートの移動またはコピー」とすると、確かに小さな入力ボックスがでてくるのですが、その中の「移動先ブック名」の欄にBというブック名が表示されないので、選択先としてBブックを指定できないのです(その欄にブック名の手入力もできません)。 「(新しいブック)」を選択すると、AでもBでもない新しいブックが生成されてそちらにコピーされてしまうようです。 どのようにしたらブックAからブックBにシートをコピーできるでしょうか。

  • Excel 違うBookのシートをコピーする

    Excelでわからないことがあり質問させていただきました。 原紙のBookに 資料のBookのシートをコピーさせたいのですが 資料Bookには シートが sheet1~sheet50まであり 原紙のBookにマクロのボタンやフォームを作成し 毎回資料のBookの違うシート名を選択しコピーをさせることは可能なのでしょうか? たとえば 原紙のシートに入力フォームを作り sheet名を入力 → 「コピー」のボタンを押すとコピーができる。 といった感じに・・・ フォームでなくてもリストなんかでもいいのですが・・・

  • 複数sheet(可変)を別bookにコピーする

    Excel VBAでの質問です。 わかる方ご回答いただけると幸いです。 例えば、 現在"9月"というExcelファイルを開いて作業しています。 sheetは"1"~”20”という、作りが同じsheetが20個あります。 <やりたいこと> ・各sheetのA1~D80のセルの値をすべてdeleteする  (ただしsheetによってはA1セルの値を次月の同じsheetのK1セルにコピーする。  コピー後はA1セルの値はdeleteしてよい。) ・”10月”という名前のbookで新規で保存する(毎月名前は変わります) 現在、毎月月末にsheet"1"~"20"までのセルの値をすべて消して 次月に残す値をコピーペーストして”10月”というファイル名をつけて 保存するということを手作業しています。 上記をボタンひとつでやってくれるようなマクロがほしいのですが。 可能でしょうか?