アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB2008,Excel2007です。
VBからExcelのシートコピーを行いたいのですが、エラーが出てしまい対応策が分からず困っています。
どうすればいいのかご教授ください。

今、書いている処理は下記になります。
エラーが発生するのは最終行です。
エラー内容は「"HRESULT からの例外: 0x800A03EC"」

Dim CopyExcel ,PasteExcel As New Excel.Application
Dim CopyBooks ,PasteBooks As Excel.Workbooks
Dim CopyBook ,PasteBook As Excel.Workbook
Dim CopySheets,PasteSheets As Excel.Sheets
Dim CopySheet ,PasteSheet As Excel.Worksheet

'ExcelBookオープン
CopyBooks = CopyExcel.Workbooks
CopyBook = CopyBooks.Open("C:\Copy.xls")
CopySheets = CopyBook.Worksheets
PasteBooks = PasteExcel.Workbooks
PasteBook = PasteBooks.Open("D:\Paste.xls")
PasteSheets = PasteBook.Worksheets

'シートコピー
CopySheet = DirectCast(CopySheets.Item(1), Excel.Worksheet)
PasteSheet = DirectCast(PasteSheets.Item(1), Excel.Worksheet)
CopySheet.Copy(PasteSheet)

A 回答 (2件)

2つのExcel.Application間でcopyしようとしてるからじゃないでしょうか?


CopyExcelとPasteExcelを分けずに1つにしてみてはどうでしょうか?

例えば、
Dim excelApp As New Excel.Application
で両方のBookを開く。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
指摘されたとおり、Excel.Applicationを1つにしたところ
正しくコピー処理がうごきました。

お礼日時:2008/03/28 20:22

本当に「エラーが発生するのは最終行」ですか?



CopyBooks = CopyExcel.Workbooks でエラーになるはずなのですが。

この回答への補足

デバッグしているときに、エラーをcatchするのは最終行です。
指摘された箇所ではエラーは発生しませんでした。

補足日時:2008/03/28 12:37
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!