0

わかりましたので、簡単なコード スニペットのバンドエイドの上にバンドエイドを配置して、送信する電子メールを取得しました。私がやろうとしているのは、Outlookを介して送信する電子メールを取得することです。私の最初の問題はruntime object define 287次の行にありました。

Set appOutlookRec = appOutlookMsg.Recipients.Add

私が追加したことに対抗するために:

Set objNS = appOutlook.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)

そして、それはそれを止めました。これで電子メールが作成され、使用して電子メールを表示できるようになりましたが、実際に電子メールが送信される前に Outlook のインスタンスを.display使用しようとすると閉じてしまいます。.send

Outlook を強制的に開くことに対抗するために、インスタンスが既に開いているかどうかを確認したいと思います。私が使用する受信トレイを開くには:

Set appOutlook = CreateObject("Outlook.Application")
Set objNS = appOutlook.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
olFolder.Display

自動化プロセスを複雑にしすぎていませんか? または、私は正しい道を進んでおり、Outlook のインスタンスがエクスプローラー ウィンドウで開いているかどうかを確認するのを手伝ってくれる人がいますか?

ありがとう

アップデート

Const olMailItem = 0
Const olTo = 1
Const olCC = 2
Const olFolderInbox = 6
Dim appOutlook As Object
Dim appOutlookMsg As Object
Dim appOutlookRec As Object
Dim objNS As Object
Dim olFolder As Object

Set appOutlook = CreateObject("Outlook.Application")
Set objNS = appOutlook.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
olFolder.Display

'Create a new empty email message
Set appOutlookMsg = appOutlook.CreateItem(olMailItem)

With appOutlookMsg
Set appOutlookRec = appOutlookMsg.Recipients.Add("....@gmail.com")
    appOutlookRec.Type = olTo
    .Subject = "Testing Closed Tickets"
    .Body = "This is just a test."
    '.Display
    .Send
End With

Set appOutlookMsg = Nothing
Set appOutlook = Nothing
Set appOutlookRec = Nothing
4

1 に答える 1

1

以前に似たようなことがありましたが、通常、送信する前にメールを保存することでエラーを回避できると思います:

appOutlookMsg.Save
appOutlookMsg.Send
于 2013-10-09T12:11:54.583 に答える