VC++2005からExcelの操作

[戻る]
たか 2009/09/29(火) 23:51:24
VC++2005からExcel2007の操作でこまっております。

以下のSaveAsのところで、例外が発生して終了してしまいます。
Excel2003だと同じソースで動いたのですが(import以外は変えて)
2007だと何か変更が必要でしょうか。

-------------------

#include "stdafx.h"
#include "docobj.h"

#import "C:\Program Files\Common Files\Microsoft Shared\Office12\MSO.dll" 
no_namespace rename("DocumentProperties", "DocumentPropertiesXL")   
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" 
no_namespace   
#import "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" rename
("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename
("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces
using namespace Excel;

int _tmain(int argc, _TCHAR* argv[])
{
    ::CoInitialize(NULL);

    {
        _ApplicationPtr pXL;
        pXL.CreateInstance(L"Excel.Application");

        WorkbooksPtr pBooks = pXL->Workbooks;
        _WorkbookPtr pBook = pBooks->Open("D:\\DLLTEST\\test.xlsx");

        pBook->SaveAs
("D:\\DLLTEST\\test2.xls", ::xlExcel9795, ::vtMissing, ::vtMissing, ::vtMissing
, ::vtMissing, ::xlNoChange, 
        
    ::vtMissing, ::vtMissing, ::vtMissing, ::vtMissing, ::vtMissing);

        pBook->Close();

        pXL->Quit();
    }

    ::CoUninitialize();

    return 0;
}

-------------------------
デバッグで実行すると↓で落ちています。

comip.h

    void _Release() throw()
    {
        if (m_pInterface != NULL) {
            m_pInterface->Release(); ← ここ
        }
    }

subaru 2009/09/30(水) 10:56:51
>以下のSaveAsのところで、例外が発生して終了してしまいます。
例外は_com_error型でもcatchできないでしょうか?
例外の内容が調べられれば原因がわかるかもしれません。

古いスレッドには追加発言できません。