我想在 VBA 中使用我现有的代码并将该功能添加到“使用特定帐户发送”。我当前的编码根据用户位置调用模板(效果很好),但电子邮件代表同一邮箱发送。
例如,当我运行当前宏时,“发件人”将作为Toast Los Angeles Sent on Behalf of Toast Los Angeles
发送我希望电子邮件是 BWS 代表 Toast Los Angeles 发送
任何帮助将不胜感激。
Sub JobCompletion()
Dim Inbox As Object
Dim MyItem As Object
Dim Region As String
Dim RegionB As String
Dim FormTemplate As String
'This code was replaced by Environ("UserName") to be compatible with Win 10
'Select Case fOSUserName()
Select Case Environ("UserName")
'Set up site according to username for LA
Case "blue", "red", "pink"
Region = "Toast Los Angeles"
FormTemplate = "IPM.Note._LA Pres Center Job Complete Notification - IBD"
'Set up site according to username for HOU
Case "black", "brown", "gree"
Region = "Toast Houston"
FormTemplate = "IPM.Note._HOU Pres Center Job Complete Notification - IBD"
Case Else
MsgBox "Please Contact Jacob X to add you to the Macro"
Exit Sub
End Select
'Check Version of Outlook (2007 vs 2010)
If Outlook.Application.Version = "12.0.0.6680" Then
On Error GoTo FolderError:
Set Inbox = Outlook.Application.GetNamespace("MAPI").Folders("Mailbox - " & Region)
On Error Resume Next
Else
On Error GoTo FolderError:
Set Inbox = Outlook.Application.GetNamespace("MAPI").Folders(Region).Folders("Inbox")
On Error Resume Next
End If
'Open Form From Folder (The Inbox =)
Set MyItem = Inbox.Items.Add(FormTemplate)
MyItem.SentOnBehalfOfName = Region
MyItem.Display
Set Inbox = Nothing
Set MyItem = Nothing
Exit Sub
End Sub
我尝试使用默认帐户实施宏,但此代码用于新电子邮件而不是我现有的电子邮件模板。
Public Sub New_Mail()
Dim olNS As Outlook.NameSpace
Dim oMail As Outlook.MailItem
Set olNS = Application.GetNamespace("MAPI")
Set oMail = Application.CreateItem(olMailItem)
'use first account in list
oMail.SendUsingAccount = olNS.Accounts.Item(1)
oMail.Display
Set oMail = Nothing
Set olNS = Nothing
End Sub
听起来您需要使用
SendUsingAccount
类的 MailItem
属性。 SendUsingAccount
属性可用于指定在调用 MailItem
方法时用于发送 Send
的帐户。
Set MyItem = Inbox.Items.Add(FormTemplate)
MyItem.SendUsingAccount = Account
MyItem.Display
您还可以从 Outlook 中该帐户的文件夹中的模板创建项目。只需使用 Store.GetDefaultFolder 而不是 Namespace.GetDefaultFolder。
Store.GetDefaultFolder
方法类似于GetDefaultFolder
对象的NameSpace
方法。不同之处在于此方法获取与帐户关联的交付商店上的默认文件夹,而NameSpace.GetDefaultFolder
返回当前配置文件的默认商店上的默认文件夹。