現在、ボタンを押下すると、VBAにて生成したExcelに対して、特定のシートをコピーするような処理を実装しようとしています。
Excelでいうと、移動またはコピー⇒コピーを作成するを選択した上で移動先ブック名に(新しいブック)を選択するようなイメージです。
やりたいこととしては、この新しいブックを別インスタンス(VBAを実装しているExcelとは完全別もの)で生成したうえでシートのコピーができればと思っております。
↓↓↓↓↓以下ソース↓↓↓↓↓↓
Sub copySummary()
Set dataSheet = Worksheets("data") Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Object Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) dataSheet.Copy before:=xlBook.Worksheets(1) Set xlSheet = Nothing Set xlBook = Nothing xlApp.Quit Set xlApp = Nothing
End Sub
↑↑↑↑↑終わり↑↑↑↑↑
ここの「dataSheet.Copy before:=xlBook.Worksheets(1)」で「'Copy'メソッドは失敗しました」となってしまいます。
(コピー回数に限界があるというようなエラー)
ここを「dataSheet.Copy」のみにすれば動くのですが、同インスタンス内で新しいブックが作成され、コピーがされてしまいます。(ここは実装が悪いだけかと思っています)
またこのエラーを調べてみるとこまめにSaveをすれば大丈夫というような記述があったので試してみたのですが、同じようなエラーが発生しています。
どうにかして別インスタンスでExcelを生成してシートをコピーしたいのですが、
どこを直せばよいか分かりますでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。