vba - 以编程方式在 VBA 中添加对 Outlook 2010 的引用

标签 vba outlook outlook-2010

我有一个 Outlook 宏,它可以部分编辑电子邮件或日历项目的内容,这需要添加“Microsoft Word 14.0 对象库”引用。我知道如何在 Excel ActiveWorkbook.VBProject.References.AddFromGuid() 中执行此操作,但我找不到有关在 Outlook 中执行此操作的任何信息。

可能吗?

Remou 的示例代码:

Sub CreateNotesEmailFromAppointment()
  Dim oMeeting As AppointmentItem
  Dim oEmailTemplate As Outlook.MailItem
  Dim oEmailWordDoc As Word.Document

  If Application.ActiveInspector.CurrentItem.Class = olAppointment Then
    Set oMeeting = Application.ActiveInspector.CurrentItem
    Set oEmailTemplate = Application.CreateItemFromTemplate(PathToTemplateFile)
    oEmailTemplate.Display
    Set oEmailWordDoc = Application.ActiveInspector.WordEditor

    With oEmailWordDoc.Content.Find
        .Text = "<Date>"
        .Replacement.Text = Month(oMeeting.Start) & "/" & Day(oMeeting.Start)
        .Execute Replace:=wdReplaceAll
    End With
    'More editing and formatting of oEmailWordDoc follows'
  End If
End Sub

最佳答案

考虑后期绑定(bind):

Dim wd As Object

Set wd = CreateObject("Word.Application")
wd.Visible = True
wd.Documents.Open "C:\Docs\Temp.doc"

如果 Word 实例正在运行:

On Error Resume Next
Set wd = GetObject(,"Word.Application")

If Err.Number <> 0 Then
   Set wd = CreateObject("Word.Application")
End If

wd.Visible = True

这是 2002 年的数据,但比最近的数据更好的引用:http://support.microsoft.com/kb/307216

不使用单词而是使用模板的 HTMLBody 的不同方法怎么样:

  Dim oMeeting As AppointmentItem
  Dim oEmailTemplate As Outlook.MailItem

  If Application.ActiveInspector.CurrentItem.Class = olAppointment Then
    Set oMeeting = Application.ActiveInspector.CurrentItem
    Set oEmailTemplate = Application.CreateItemFromTemplate(PathToTemplateFile)
    oEmailTemplate.Display
    oEmailTemplate.HTMLBody = _
       Replace(oEmailTemplate.HTMLBody, "&lt;date&gt;", Month(oMeeting.Start) _
          & "/" & Day(oMeeting.Start))
  End If

关于vba - 以编程方式在 VBA 中添加对 Outlook 2010 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12221837/

相关文章:

excel - VBA:有没有办法获取/读取模块属性?

excel - 在excel中将值从文件发送到另一个文件

vba - 如何覆盖从磁盘上的 zip 中提取的文件?

html - Outlook 2010 中的宽度问题

HTML 电子邮件 – 为什么在使用 Outlook 2010 打开邮件时某些元素不显示?

excel - 返回到按下按钮的工作表

vba - 无法使用 ADO 从 CSV 读取数据,因为驱动程序认为我正在使用整数/数字并显示空值而不是文本

vba - 在Outlook中永久删除邮件项

c# - 在 C# 中使用 WPF 显示 .msg 文件

c# - 如何检索邮件项目的 Outlook 文件夹 (Outlook.MailItem)?