GetObjectでExcelを参照し、
オブジェクトの解放とExcelの終了をさせるとすでに起動していたExcelが終了してしまいます。
ExcelObj.Application.Quit
Set ExcelObj = Nothing
保存せずにExcelを閉じない方法はあるのでしょうか?
よろしくお願いいたします。
リモートオブジェクトなのですから、
Quitしたら終了するのは当然だと思いますが・・・。
終了したくなかったらQuitしなければいいのでは?
ご回答ありがとうございます。
Quitをさせないのはわかりましたが、あらたにわからない所ができました。
私は今、CSVファイルをExcelファイルに書き出す勉強をしています。
書き出しはうまくいっているのですが、Excelが起動していた場合の処理がうまくいきません。
処理はCSVファイルを書き出す時に、ほかにExcelが起動していても保存・終了させずにそのままにしておき処理をさせる事です。
Application.QuitですべてのExcelが終了してしまうのはわかりました。
そこでわからなくなったことは、
・処理をしているWorkbookをQuitさせることはできるのか?
できないとすれば、どのようにとじるのか?
・Excelを起動しているのかどのように調べるのか?
私が考えている処理は、Excelを起動しているか確認し、
起動しているのなら処理をしているWorkbookだけQuitさせる。
起動していないのらApplication.Quitさせようと考えています。
よろしくお願いします。
>処理をしているWorkbook…
Set Workbook = Nothing
ではダメなのでしょうか?
>Excelを起動…
プロセス監視(GetExitCodeProcess)がやりやすいかも知れません。
インテリセンスを使えば一目瞭然と思いますが、
WorkBookはQuitするものではなく、Closeするものです。
解決しました。ありがとうございました。
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
ツイート | ![]() |