わかりましたので、簡単なコード スニペットのバンドエイドの上にバンドエイドを配置して、送信する電子メールを取得しました。私がやろうとしているのは、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