- ベストアンサー
VBAにて新規ブックへ既存シートのコピー
みなさんのお力を貸して下さい。 現在エクセルマクロにて新規ブックを作成し、作成したブックへ既存のシートをコピーをしたいと思っています。 しかし、コピーメソッド実行時にエラー1004 WorksheetクラスのCopyメソッドが失敗しましたというエラーが発生して困っています。 Dim oXls As Object Dim oWbk As Object Dim oSheet As Object Set oXls = CreateObject("Excel.Application") Set oWbk = oXls.Workbooks.Add ThisWorkbook.Worksheets("Sheet1").Copy Before:=oWbk.Worksheets("Sheet1") どなたかご教授、よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
エラーの原因は、redfox63さんが回答されてますのでなんですが。。。 >Set oXls = CreateObject("Excel.Application") これが拙いですよ、ということです。 '------------------------------------------ Sub test1() Dim oWbk As Workbook Set oWbk = Workbooks.Add ThisWorkbook.Worksheets("Sheet1").Copy Before:=Worksheets("Sheet1") End Sub '----------------------------------------- Sub test2() Workbooks.Add ThisWorkbook.Worksheets("Sheet1").Copy Before:=Worksheets("Sheet1") End Sub '------------------------------------ Sub test3() ThisWorkbook.Worksheets("Sheet1").Copy End Sub '------------------------------------- test1,2,3とも新しいブックは、ActiveWorkbook になります。 (test1では、oWbkも新しいブックですが) また、test3 では、コピーされたシート1枚(Sheet1)のみの新しいブックが作成されます。
その他の回答 (3)
- hige_082
- ベストアンサー率50% (379/747)
コピーしたいシート上で下記を実行 Sub Macro1() ActiveSheet.Copy End Sub 以上です
- turuzou
- ベストアンサー率33% (15/45)
下記も参考になりそうです。 演算の終ったシートだけを別名ブックとして保存する http://www.asahi-net.or.jp/~zn3y-ngi/YNxv922.html
- redfox63
- ベストアンサー率71% (1325/1856)
インスタンスの違う Excel間でのコピーが出来ないのではないかと思います 自アプリExcelに新しいBookを追加してのコピーなら可能なように思います
お礼
ご回答を頂いたみなさま。 早めのご助言を頂き感謝しております! 出来ればActiveWorkbookは使用したくなく(Excel使用中などにバグが出そう・・・想像ですが・・・)キチンとBookを指定して操作を行いたかったので、以下のコードで解決できました! 昨日あれだけ悩んだのがウソのようです。 本当にありがとうございました! Dim sSheetNM As String Dim oWbk As Workbook sSheetNM = "Manage" Set oWbk = Workbooks.Add ThisWorkbook.Worksheets(sSheetNM).Copy Before:=oWbk.Worksheets("Sheet1") oWbk.Worksheets(sSheetNM).Cells(2, 2).Value = "TestInput" oWbk.SaveAs "d:\Manage.xls" oWbk.Close