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

このQ&Aのポイント
  • 一つのブックに複数のワークシートを追加して保存するVBAについて教えてください。
  • MASTERワークシートにデータを入力し、処理別にワークシートをコピーして保存したいですが、上手くコピーされません。対処法や参考VBAを教えてください。
  • EXCEL VBAを使ってワークシートのコピーを行いたいです。処理別にデータを代入しながら、複数のワークシートをコピーしたいのですが、うまくいきません。対処法や参考になるVBAを教えてください。
回答を見る
  • ベストアンサー

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等ご教授宜しくお願いいたします。

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

  • ベストアンサー
  • excelist
  • ベストアンサー率56% (13/23)
回答No.1

今どういうコードを書いているのか不明なので、とりあえず 「1つのシートを別のブックに複数回コピーする」ための参考ソースを書きます。 コピー元のブックに下記ソースを貼り付けて実行してもらえば 新規ブックにコピー元のシートが3枚コピーされると思います。 (新規ブックを追加しているのでシート数は3枚より多くなります) Sub copySheet() Dim masterWb As Workbook Dim masterSh As Worksheet Dim copyWb As Workbook Set masterWb = ThisWorkbook Set masterSh = masterWb.Sheets(1) Set copyWb = Workbooks.Add 'ここからが実際のコピー処理です。 '単純に3回コピーメソッドを呼び出して3回コピーしています。 masterSh.Copy before:=copyWb.Sheets(1) masterSh.Copy before:=copyWb.Sheets(1) masterSh.Copy before:=copyWb.Sheets(1) End Sub

sea_clear
質問者

補足

回答ありがとうございました。 無事解決することができました。 コピーの文法を教えて頂きありがとうございました。

関連する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ワークシート という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • EXCEL VBA ワークシート貼り付け

    EXCEL2000のVBAを使用して 元データーの左から5番目のワークシートをコピーして 同じフォルダー内にあるエクセルデーター(10個)の 一番左に貼り付けたいのですがVBAの処理で出来ますでしょうか? 実施する処理は元データーの左から5番目のワークシートを コピーして貼り付けたいデーターを開いて 開いたデーターを移動先ブック名に指定して一番左に元データーの 左から5番目のデーターを貼り付けて 処理が終了したら移動先ブックを閉じて次のデーターも 同じことを行いフォルダー内のデーター全てに同じ処理を 行ったら終了する? 文面だけの説明で大変申し訳ないのですがご教授していただけないでしょうか?

  • excel vba

    テーブル情報に基づきシートをコピーするVBAマクロを記述したい。 ExcelのBook111のSheet1に次のような データが入っています。 (1、2)セルにn=3という数字が入っているものとします。 その数値に合わせて、この場合は3なので Sub Sample01() Workbooks("Book3.xls").Worksheets("booksheet3").Copy After:=Workbooks("Book111.xls").Sheet(1) End Sub のようなつまり、booksheet3なるシートをBook111(固定なBOOK)にコピーしようとしています。 このようなことをVBAで書くにはどうすればいいのでしょうか。 ただしBook名とシート名はあくまでデータの値にもとづいたデータをもってくることになります。 要するに間接参照したデータに基づき処理するのをどのように記述するかという質問です。 A列 B列 1 回数 n=3 2     3     4 Book1.xls book1sheet ←n=1 5 Book2.xls book2sheet ←n=2 6 Book3.xls book3sheet ←n=3 7 Book4.xls book4sheet 8 Book5.xls book5sheet 9 Book6.xls book6sheet ←n=6 10 Abc,xls Defsheet ←n=7

  • VBAでsheetのコピー

    ご回答有難う御座いました。補足説明を致します。動作するとこまでは、出来たのですが、一点変更しました。:=のコピーの所でデバッグすると、エラーになるので、=だけにしました。すると動作するのですが、新しいsheetの名前が、コピー元のsheet名になります。そして、MsgBoxを入れると、エラーになります。また、1sheetだけがコピーされます。大変恐縮ですが、もう一度ご教授願います。補足説明なりますが、やりたい事は、拡張子がxlsmの中に名前のついた10個のsheetがあります。この10個のsheetを拡張子がxlsxのBookにコピーしたいのですが、このBook1のsheetをVBAから新に作成しBook2のsheet1に纏めたいのですが、纏め方は、Book2のsheet1の下から上に10sheetをコピーして、条件としてBook2のsheet1の名前は、固定で構いません。Book1の一番初めのsheetにコピーする時だけ3行目にある見出しだけは、Book2のsheet1に付けたく。それ以外のBook1のsheetは、デターだ4行目以降をコピーしたいのですが、また、コピーしたいsheetの範囲に列は、A1~AFで列は3~62までです。マクロはご教授頂いた、下記通りです。 Sub macro1() Dim i As Long Dim w0 As Workbook Dim s As Worksheet Set w0 = ActiveWorkbook '1枚目シートから貼り付け先のブックを作る w0.Worksheets(1).Copy Set s = ActiveSheet '2枚目以降のデータをコピーする For i = 2 To w0.Worksheets.count With w0.Worksheets(i) .Range("A4:AF" & .Range("A65536").End(xlUp).Row).Copy Destination = s.Range("A65536").End(xlUp).Offset(1) End With Next i End Sub これを先ほど書きました、マクロを教えて頂けませんでしょうか?何せ、マクロ初心者なので、msm相談箱がたよりです。何卒マクロを教えて頂きたく宜しくお願い申し上げます。

  • エクセルでのグラフコピー

    5シート構成のブックのうち4シート目にグラフがあります。このグラフの元データは5シート目にあります。この2シート(4,5シート目)をCOPY(シートを選択してCOPYをつくるでbook1へCOPYして別名保存)して公開データにするマクロをおぼえさせたのですが グラフのデータが 元のブック(5シート構成)のデータを参照する形になってしまいます。元データもコピーしているのにbook1の2シート目のデータを使わない。 手動で元データを修正することはできますが マクロでするには元データを再設定してやるしかないのですか?  

  • VBAでsheetのコピー

    初めまして、宜しくお願い致します。環境:WindowsXPSP3EXCEL2010やりたい事Book1に複数の名前の付いたsheetがあります。sheetの数は可変です。このBook1のsheetをVBAから新に作成するBook2のsheet1に纏めたいのですが、Book2のsheet1だけに纏めたいのですが、Book2のsheet1の名前は、固定で構いません。Book1の一番初めのsheetにコピーする時だけ3行目にある見出しだけは、Book2のsheet1に付けたく。それ以外のBook1のsheetは、デターだけをコピーしたいのですが、作成したマクロでは、実行時エラーがでます。【実行時エラー'9'】【インデックスが有効範囲にありません】とでます。次の部分です。「Sheets("mySheetName(i)").Copy Before:=Workbooks("Book1").Sheets("Sheet1")」また、Book2のsheet1の名前は固定で構いません。しかし、マクロの記述の仕方も判りません。どなたかご教授願います。何卒宜しくお願い申し上げます。

  • エクセルのシートのコピーについて

    シートのコピーをVBAで行いたいのですが、エラーになってしまいます。 間違っている箇所が分からないのでご教授お願いします。 貼り付けというブックにマクロが組まれています。 ”データ”のブックにあるシート名が”貼り付けのブックのリスト”のシートに記載されています。 リストのシートに記載されているシートを貼り付けのブックにコピーしたいです。 よろしくお願いします。 Sub シートコピー() 行数 = 2 Do Until IsEmpty(Cells(行数, 3).Value) コピー元 = Workbooks("貼り付け.xls").Worksheet("リスト").Cells(行数, 3) Workbooks("データ.xls").Worksheet(コピー元).Copy After:=Workbooks("貼り付け.xls").Sheets(Workbooks("貼り付け.xls").Sheets.Count) 行数 = 行数 + 1 Loop End Sub

  • Excel VBA別ブックのシートをコピーするには

    Excel2010のVBAで別ブックのシートをコピーしてくる方法 Excelファイル(C:\test\BOOK2.xls)のシート名が TESTというシートを自分のExcelファイル(C:\doc\BOOK1.xls)に コピーするにはどのように記述すればよいのでしょうか。 ・コピー先:自分のExcelファイル(C:\doc\BOOK1.xls)  VBAのコードがあるファイルです ・コピー元:C:\test\BOOK2.xlsのTESTシート  なお、TESTシートを持つ同じ名前(BOOK2.xls)のファイルが  別フォルダにもあります   Workbooks( )の引数にファイル名(BOOK2.xls)は指定できるのですが、 フルパス名(C:\test\BOOK2.xls)で指定できないので困っています。

  • Excelマクロ(VBA)のブックとシートのコピーについて

    初めまして、宜しければVBAのブックやシートのコピー(操作)についてご教授お願いいたします。 Windows XP x64 OFFICE2003 を使用しております。 D:\Book1.elxのsheet1のシートをD:\test\Book2.elxのsheet1のシートに コピーする方法が恥ずかしながら理解できておりません。 以下が行いたい事です。 Sub ボタン1_Click() 'text1ブックを開く 'Workbooks.Open "D:\micro\test1.xls" 'ブック間のシートをコピー Workbooks("test2.xls").Worksheets("シート2").Copy _ After:=Workbooks("test1.xls").Worksheets("Sheet2") End Sub VBのファイル操作とは違い、どのように行えば良いのか検索しても同じような部分サンプルのようなものしか無く、理解できておりません。 参考でも結構ですのでご教授いただけませんでしょうか? よろしくお願いいたします。

  • EXCEL「シートの移動またはコピー」について

    EXCEL2003で下記の現象が発生し、理由が分からずにおります。 Book1とBook2が存在し、"その両方を開いた状態"でBook1のSheet1をBook2にコピーしようとします。 その時、通常であれば「シートの移動またはコピー」ダイアログの"移動先ブック名"に、現在開かれているEXCELファイルが全て表示されますが(今回の例であれば「Book1」「Book2」「新しいブック」)、ごくたまに「Book1(コピー元)」と「新しいブック」以外が表示されないことがあります。 Book2にコピーしたいので、Book1・Book2両方を数回開き直したりするのですが、どうやっても"移動先ブック名"にBook2が表示されず、PCの再起動後に正常に表示されたりします。 これは、メモリや内容のデータ量が関係するのでしょうか。

専門家に質問してみよう