次のコード行があります。Outlookを開いているときは正常に動作しますが、Outlookを閉じていても動作させたいです。コマンドボタンのクリックイベントにコードを保持しました。
Private Sub btnSend_Click()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = GetObject("", Outlook.Application)
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = "adbc@adbc.com"
.CC = ""
.BCC = ""
.Subject = "Test mail from Excel Sheet-OutLook Closed"
.Body = "This is body of the mail"
.Display
.Send
.ReadReceiptRequested = True
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
GetObjectメソッドとCreateObjectメソッドの両方で試してみました。Outlookを閉じた後にこのコードを実行すると、エラーは表示されませんが、メールは送信されません。
メールを送信する次のコード行ですが、Outlookの送信トレイでキューに入れられています。ユーザーがOutlookを開くと、ユーザーだけが送信トレイから移動します。
Private Sub btnSend_Click()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = "adbc@adbc.com"
.CC = ""
.BCC = ""
.Subject = "Test mail from Excel Sheet-OutLook Closed"
.Body = "This is body of the mail"
.Display
.Send
.ReadReceiptRequested = True
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub