こんにちわ。tomisanといいます。
VB初心者なのですが、VB2008でOUTLOOKを使用して、メールの作成、下書き保存の処理を考えています。
処理はうまくいったのですが、タスクマネージャーからOutlook.exeの解放ができません。よろしくお願いします。
'OUTLOOKオブジェクト
Dim objOutlook As Object
Dim objNamespace As Object
Dim objFolder As Object
Dim objMAil As Object
'OUTLOOL操作用オブジェクト
objOutlook = CreateObject("Outlook.Application")
objNamespace = objOutlook.GetNamespace("MAPI")
'デフォルトのフォルダを表示(OUTLOOK起動用)
objFolder = objNamespace.GetDefaultFolder(6)
'メールアイテムの作成
objMAil = objOutlook.CreateItem(0)
objMAil.To = ToMale
objMAil.CC = ToMaleCC
objMAil.Subject = Kenmei
objMAil.Body = Body
objMAil.Save() '保存、下書きへ
objMAil.Close(2) 'メール作成終了
'オブジェクト解放
Marshal.ReleaseComObject(objMAil)
Marshal.ReleaseComObject(objFolder)
Marshal.ReleaseComObject(objNamespace)
objOutlook.Quit()
Marshal.ReleaseComObject(objOutlook)
objMAil = Nothing
objFolder = Nothing
objNamespace = Nothing
objOutlook = Nothing
ここは VB2-VB6専用の掲示板です。
VB2008 は隣の掲示板をご利用ください。
> タスクマネージャーからOutlook.exeの解放ができません。
当方環境では、最後の ReleaseComObject にて解放されました。
(Nothing 代入なし)
ただし、解放にはメッセージループを必要とするのか、
objOutlook.Quit()
Marshal.ReleaseComObject(objOutlook)
を実行した後で、VB 側のプロシージャを Return するなどして、
VB を Idle 状態にしないとタスクから消えませんでした。
(あるいは、AppDomain がアンロードされた場合にもタスクから消えましたが)