我有一个 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, "<date>", Month(oMeeting.Start) _
& "/" & Day(oMeeting.Start))
End If
关于vba - 以编程方式在 VBA 中添加对 Outlook 2010 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12221837/