Excelを退避させるには?

解決


素人VB  2002-12-02 17:45:21  No: 105568  IP: [192.*.*.*]

GetObjectでExcelを参照し、
オブジェクトの解放とExcelの終了をさせるとすでに起動していたExcelが終了してしまいます。

ExcelObj.Application.Quit
Set ExcelObj = Nothing

保存せずにExcelを閉じない方法はあるのでしょうか?

よろしくお願いいたします。

編集 削除
Say  2002-12-02 23:55:20  No: 105569  IP: [192.*.*.*]

リモートオブジェクトなのですから、
Quitしたら終了するのは当然だと思いますが・・・。
終了したくなかったらQuitしなければいいのでは?

編集 削除
素人VB  2002-12-03 10:55:58  No: 105570  IP: [192.*.*.*]

ご回答ありがとうございます。
Quitをさせないのはわかりましたが、あらたにわからない所ができました。

私は今、CSVファイルをExcelファイルに書き出す勉強をしています。
書き出しはうまくいっているのですが、Excelが起動していた場合の処理がうまくいきません。
処理はCSVファイルを書き出す時に、ほかにExcelが起動していても保存・終了させずにそのままにしておき処理をさせる事です。

Application.QuitですべてのExcelが終了してしまうのはわかりました。
そこでわからなくなったことは、
・処理をしているWorkbookをQuitさせることはできるのか?
  できないとすれば、どのようにとじるのか?
・Excelを起動しているのかどのように調べるのか?

私が考えている処理は、Excelを起動しているか確認し、
起動しているのなら処理をしているWorkbookだけQuitさせる。
起動していないのらApplication.Quitさせようと考えています。

よろしくお願いします。

編集 削除
あんちゃん  2002-12-03 11:24:55  No: 105571  IP: [192.*.*.*]

>処理をしているWorkbook…
Set Workbook = Nothing
ではダメなのでしょうか?
>Excelを起動…
プロセス監視(GetExitCodeProcess)がやりやすいかも知れません。

編集 削除
Say  2002-12-03 23:13:39  No: 105572  IP: [192.*.*.*]

インテリセンスを使えば一目瞭然と思いますが、
WorkBookはQuitするものではなく、Closeするものです。

編集 削除
素人VB  2002-12-04 10:28:28  No: 105573  IP: [192.*.*.*]

解決しました。ありがとうございました。
GetExitCodeProcessはヘルプを見てもわかりませんでしたので、
以下のように解決しました。

'Excelの起動チェック & Excelへの参照
    Set ExcelApp = GetObject(, "Excel.Application")
    If Err.Number <> 0 Then
        ExcelWasNotRunning = True
        Err.Clear
        Set ExcelObj = GetObject(ExcelFilePath)
    Else
        Set pwExcelObj = GetObject(ExcelFilePath)
    End If

編集 削除