Excelを退避させるには?

解決


素人VB  2002-12-03 02:45:21  No: 105568

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

ExcelObj.Application.Quit
Set ExcelObj = Nothing

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

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


Say  2002-12-03 08:55:20  No: 105569

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


素人VB  2002-12-03 19:55:58  No: 105570

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

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

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

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

よろしくお願いします。


あんちゃん  2002-12-03 20:24:55  No: 105571

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


Say  2002-12-04 08:13:39  No: 105572

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


素人VB  2002-12-04 19:28:28  No: 105573

解決しました。ありがとうございました。
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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加