Excelの終了 – プログラミング – Home

通知
すべてクリア

[解決済] Excelの終了


GG
 GG
(@GG)
ゲスト
結合: 18年前
投稿: 185
Topic starter  

お世話になっています。GGです。

ダイアログ上であるボタンを押すとExcelを起動しています、
終了するときに、OKボタンを押して終了します。
問題なのは、
開いているExcelはExcel画面自体の終了ボタン(右上の×)
とメニュー上で”終了”を押すとExcelを閉じました。
そのときに、
ダイアログ上OKボタンを押すとエラーが出ました。
その回避仕方があるのでしょうか。
例:
起動部分:
pBook = pApp->Workbooks->Open(C:\\送受信箱\\Test1.xls);
SheetsPtr pSheets = pBook->GetWorksheets();
_WorksheetPtr pSheet;
 for (short i=1; i<= pBook->GetWorksheets()->GetCount(); i++) {
pSheet = pSheets->GetItem(COleVariant(i));
if (pSheet->GetName() == _bstr_t(RGN_JJ)) {
 pSheet->Activate();
 break;
}
 }
終了部分(OKボタン)
if(pApp!=NULL){
  pBook->Close();
  pApp->Quit();
  pApp.Release();
}

いろいろ試したのですが、うまく行かないです。

環境:.Net MFC使用、Win2000

以上、よろしくお願いします。


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

try~catchして _com_err を捕まえましょう。

if ( pApp )
{
if ( pBook )
{
try
{
this->pBook->Close();
}
catch ( _com_error& e )
{
AfxMessageBox( e.ErrorMessage() );
}
}
try
{
this->pApp->Quit();
}
catch ( _com_error& e )
{
AfxMessageBox( e.ErrorMessage() );
}
}


返信引用
GG
 GG
(@GG)
ゲスト
結合: 18年前
投稿: 185
Topic starter  

Blueさん
ご返事ありがとう。

if ( pBook )
{
try
{
this->pBook->Close();
}
catch ( _com_error& e )
{
AfxMessageBox( e.ErrorMessage() );  //ここで
}
}
エラーメッセージ:
起動されたオブジェクトはクライアントから切断されました。

どう対処すればいいでしょうか。

よろしくお願いします。


返信引用
GG
 GG
(@GG)
ゲスト
結合: 18年前
投稿: 185
Topic starter  

Blueさん

解決しました。
if ( pBook )
{
try
{
this->pBook->Close();
        pBook=NULL;   //ここで
}
catch ( _com_error& e )
{
AfxMessageBox( e.ErrorMessage() );
        pBook=NULL;   //ここで
}
}

終了部分(OKボタン)
if(pApp!=NULL){
  pApp.Release();
pApp=NULL;
}

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました