VBでエクセルの終了操作について

解決


  2006-06-16 19:20:36  No: 131892

類似の質問(前スレ)
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200606/06060039.txt

こんにちは良です。
前のスレで特攻隊長さんの助言をいただき、自分なりに
いろいろと変えてみました。

単純にエクセルの開始と終了操作のソースを載せます

 Private Sub btnExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcel.Click
        Dim xlApplication As New Excel.Application
        Dim xlBooks As Excel.Workbooks

        ' xlApplication から WorkBooks を取得する
        xlBooks = xlApplication.Workbooks

        ' 新しい Excel ブックを追加する
        xlBooks.Add()

        ' Excel を表示する
        xlApplication.Visible = True
ソースをここまでにしてこの下を記載しないようにしました。

        '' 1000 ミリ秒 (1秒) 待機する
        'System.Threading.Thread.Sleep(10000)

        '' Excel を終了する
        'xlApplication.Quit()

        '' COM オブジェクトを解放する (正しくは COM オブジェクトを解放する を参照)
        'System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks)
        'System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApplication)
    End Sub

これだと手動で×ボタンを押して勝手に終了しても問題はありませんでした。
この処理の仕方はまずいでしょうか?
やっぱり一個ずつ全部解放しないとまずいでしょうか?


もげ  2006-06-16 21:46:03  No: 131893

(私ならこうする  って程度の情報ですが)
ユーザに見せる部分と、そうでない部分を分けて考えたほうがいいかも。

オートメーション処理は、全て非表示でユーザからは見えない状態で行い。
それが完了したら、一旦Excelを閉じ、Objectは全て明示的に開放する。
で、それが終わった後に、Excelを起動して、ユーザに完成品を見せてあげる。
とか。


  2006-06-17 01:29:40  No: 131894

こんばんは良です。

もげさん>
ご返信ありがとうございましたm(__)m
すみません。もげさんの内容を自分なりにイメージしようと
したんですがイメージが思いつきません。

すごく簡単でいいので何か一例をあげていただけませんか?


通ってみた  2006-06-17 23:46:59  No: 131895

>すごく簡単でいいので何か一例をあげていただけませんか?

>>オートメーション処理は、全て非表示でユーザからは見えない状態で行い。
>>それが完了したら、一旦Excelを閉じ、Objectは全て明示的に開放する。
>>で、それが終わった後に、Excelを起動して、ユーザに完成品を見せてあげる。


  2006-06-19 23:08:21  No: 131896

ありがとうございました。
まだ完全にはわかってはいないのですが
理解できるように努力いたします。


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

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






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