• 締切済み

Excel VBAで複数シートをコピーする

Excel VBAで複数のシートを新たらしいブックにコピーする方法が分かりません。 一応、Selectで全てのシートを選択し コピーする方法は分かるのですが 出来ればSelectなどの画面遷移をプログラム内に含ませたくありません シートは n件存在します。 ご存知の方がおられましたら ぜひ、教えて頂けないでしょうか?

みんなの回答

  • sgh
  • ベストアンサー率61% (75/121)
回答No.3

すいません、勉強不足でした。 ただ単純に「全てのシートを選択」し「新規ファイルにコピー」という動作であれば、 sheets.Select sheets.Copy だけでできました。

  • sgh
  • ベストアンサー率61% (75/121)
回答No.2

一発で新規ファイルに複数のシートコピーするのは以下のようにすればできそうです。(マクロの記録結果) Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Copy いずれにせよ、シート名の取得はループを使うのが簡単ではないでしょうか。

  • sgh
  • ベストアンサー率61% (75/121)
回答No.1

全部のシートに対して処理を行うのであれば、"For Each"は使えませんか? Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets 'コピー処理を記述 Next

HystericGlamour5
質問者

お礼

回答ありがとうございます。 質問には書いてなかったのですが、 確かに For Eachでも可能なのですが できれば Loop を使わずに 1度にコピー出来ないかと思いまして…

関連するQ&A

  • ExcelのVBAでシートのコピー

    Excel2000 Win2000 複数(最低5)のシートが存在するExcelのBookでExcelのVBAを使用して strSheetName="XXX1" intSheetNo = 1 Sheets(strSheetName).Copy after:=Sheets(intSheetNo) とシートのコピーをしています。 この時コピーされたシートのインデックスが2にならないんですが、何故なんでしょ? やりたい事はコピーしたシートの名前をExcelが勝手につけた名前から変更したいんです。 コピーされたシートのインデックスが2になると思っていたので上手く行きません。 Sheets(intSheetNo + 1).Name = "XXX1-1"

  • エクセルVBAでブック間のコピーをしたい。

    エクセルVBAでブック間のコピーをしたい。 エクセルのVBA初心者です。 複数のブックが開いている時(ブックA,B,C...)に、今選択しているブックAのあるセルを、直前に選んでいたブックBやC(そのつど変わります)にコピーする方法は有りますでしょうか? どなたか教えて下さい。

  • エクセルのシートを複数のBOOKにコピーしたい

    仕事で、エクセルの一枚のシートを、複数のBOOKにコピーする必要 が出てきました。いちいちシートをBOOKにコピーしていたのでは時 間がかかって仕方ありません。ある程度、まとめてコピーする方法はな いでしょうか。教えてください。お願いします。

  • VBAで複数シート選択

    エクセルVBAで複数のシートを選択する場合、 Sheets(Array("AAA", "BBB", "CCC")).Select  と書くと思いますが、マクロを回してみないことにはシート名や枚数が特定できない場合、どのように記述したらいいのでしょうか? たとえば、新たに追加されたSheets(n)~Sheets(n+x)を選択するような場合です。 よろしくお願いします。

  • Excelでシートコピーすると幅が変わる

    閲覧ありがとうございます。 Excel 2019で「シートの移動またはコピー」で、シートを新しいブックにコピーすると、幅が変わってしまいます。 同じブック内だと変わらないようです。 どうやら、全くサイズを変更していないセルの幅も違うようです。 シートをコピーする作業はVBAで行っています。 解決方法が良くわからず、質問させていただきました。 ・Excelのオプション変更で解決する方法 ・違う環境で同じExcelブックのVBAを使っても、幅が変更されない方法 できればどちらもご教示いただきたいです。 よろしくお願いいたします。

  • エクセルVBAでファイル・シート名を指定して、現在のブックのシートにコピーしたい

    エクセルVBA独学中の超初心者です。 VBAを利用して以下のことがしたいのですが、わかりません。 助けて下さい。よろしくお願いいたします。 1. ファイルを選択する。 2. 1で選択したファイルから、シート名を選択する 3. 2で選択したシートを現在のブックのSheet1にコピーする

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

    お願いします。教えてください。 エクセルのシートを同じブック内に100シート以上コピーするにはどうしたらいいでしょうか? 1シートづつなら出来るのですが、複数する方法がわかりません。 それと、そのコピーしたシートの名前をNo.1・2・3・・・と番号を自動で付けることできませんか? エクセル2000です。 よろしくご伝授ください。

  • 複数のExcelを1つのExcelに

    Excel.xlsの1シート目に、フィールドとデータが入っています。このExcelが担当者ごと複数存在します。 複数のExcelを1フォルダにまとめ、1行目はフィールド・あとは全てデータとして、1つのExcelブックの1シートへまとめることは可能でしょうか? フィールドは38列、行数はブックごと異なり、ブック名も担当者ごと異なります。 いろいろ調べたのですが、VBA初心者の為、VBAを貼り付けて実行してもうまくいきませんでした。 できれば、元ファイルは消さないよう、コピーのみ行いたいと思っています。 フォルダ名は C:\出庫依頼書 です。 どなたかご教授いただけませんでしょうか。

  • EXCELシートのコピー移動について

    (1)EXCELシートのコピー移動について AとういうBOOKの中のシート1をBというBOOKへシートのコピー移動はできるのですが例えばBOOKA,B,C,D,EとBOOKを5つひらいておいてAとういうBOOKの中のシート1をBのBOOKへコピーしたりC,D,Eへもコピーすることは可能でしょうか?勝手な考えですがコピー先を選択する参照ボタンなどがあるとわかりやすいと思ったのですが・・・誰か複数のBOOKにシートのコピーができる方法を教えてください。 (2)作成したデータとグラフを移動する方法について データのコピー移動は問題なくできるのですがグラフが移動されなくて困っています。 よろしくお願いいたします。

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