vba - 基于 Outlook 模板,从 Word 菜单创建电子邮件
问题描述
这是菜单上其他 Word 模板的代码。
Private Sub "button name_Click()
Unload ####Menu
End Sub
这是我见过的从 Word 创建 Outlook 项目的代码。
Sub CreateFromTemplate()
Dim MyItem As Outlook.MailItem
Set MyItem = Application.CreateItemFromTemplate("C:\statusrep.oft")
MyItem.Display
End Sub
Sub CreateTemplate()
Dim MyItem As Outlook.MailItem
Set MyItem = Application.CreateItem(olMailItem)
MyItem.Subject = "Status Report"
MyItem.To = "Dan Wilson"
MyItem.Display
MyItem.SaveAs "C:\statusrep.oft", OlSaveAsType.olTemplate
End Sub
我如何结合这些?
解决方案
看来您只需要从 Word VBA 自动化 Outlook。要启动 Outlook 自动化会话,您可以使用早期绑定或后期绑定。后期绑定使用 Visual BasicGetObject
函数或CreateObject
初始化 Outlook 的函数。例如,以下代码将对象变量设置为 Outlook 应用程序对象,该对象是 Outlook 对象模型中的最高级别对象。所有自动化代码必须首先定义一个 OutlookApplication
对象才能访问任何其他 Outlook 对象。
Dim objOL as Object
Set objOL = CreateObject("Outlook.Application")
要使用早期绑定,首先需要设置对 Outlook 对象库的引用。使用Reference
Visual Basic for Applications (VBA) 工具菜单上的命令设置对 Microsoft Outlook xx.x 对象库的引用,其中 xx.x 表示您正在使用的 Outlook 版本。然后,您可以使用以下语法启动 Outlook 会话。
Dim objOL as Outlook.Application
Set objOL = New Outlook.Application
大多数编程解决方案与存储在 Outlook 中的数据交互。Outlook 将其所有信息作为项目存储在文件夹中。文件夹包含在一个或多个存储中。将对象变量设置为 Outlook 应用程序对象后,通常会设置一个NameSpace
对象来引用 MAPI,如下例所示。
Set objOL = New Outlook.Application
Set objNS = objOL.GetNameSpace("MAPI")
Set objFolder = objNS.GetDefaultFolder(olFolderContacts)
一旦您设置了一个对象变量来引用包含您希望使用的项目的文件夹,您就可以使用适当的代码来完成您的任务,如以下示例所示。
Sub CreateNewOutlookMail()
Dim objOLApp As Outlook.Application
Dim NewMail As Outlook.MailItem
' Set the Application object
Set objOLApp = New Outlook.Application
' You can only use CreateItem for default items
Set NewMail = objOLApp.CreateItem(olMailItem)
' Display the new mail form so the user can fill it out
NewMail.Display
End Sub
有关详细信息,请参阅从 Visual Basic 应用程序自动化 Outlook。
推荐阅读
- c++ - AI 忽略 Connect4 中的设置参数
- javascript - 在 React Native 中更改 TouchableOpacity 的颜色
- html - 在 Bootsrap 4 的文件上传选项中显示文件名
- c# - 将字符串反序列化为双精度
- shared-libraries - 未使用 LD_LIBRARY_PATH
- javascript - Javascript 异步承诺作为宏任务
- ios - App Store 拒绝 - 支持 URL 元数据
- r - R中的茎叶图错误'|' 位置
- windows-installer - msi 安装程序客户信息表单验证许可证
- vim - 我可以使用 ale 或 syntastic 作为 pre-write 钩子而不是 post-write 吗?