我从一些博客中获得以下代码,将剪贴板中的HTML插入到Outlook电子邮件中。
Sub PrependClipboardHTML()
Dim email As Outlook.MailItem
Dim cBoard As DataObject
Set email = Application.ActiveInspector.CurrentItem
Set cBoard = New DataObject
cBoard.GetFromClipboard
email.HTMLBody = cBoard.GetText + email.HTMLBody
Set cBoard = Nothing
Set email = Nothing
End Sub
除了电子邮件位于自己的窗口(即弹出窗口)之外,它的效果很好,否则会失败。
我正在浏览文档并找到Application.ActiveExplorer.ActiveInlineResponse
here。
然而,文件说它是只读的,实际上它不起作用。有没有办法获得内联响应的可写版本?
答案 0 :(得分:1)
除了电子邮件位于自己的窗口(即弹出窗口)外,它的效果很好,否则会失败。
这是因为您在代码中有以下语句:
self.firstNameEntryView.textField.text?.append(firstName!)
然而,文件说它是只读的,实际上它不起作用。
尝试使用以下代码:
Set email = Application.ActiveInspector.CurrentItem
ActiveInlineResponse属性是只读的,但不是您要使用的对象属性。这意味着您无法将另一个邮件项目设置为内联响应,但可以设置检索到的项目的属性。
答案 1 :(得分:1)
也许您正在尝试使用ActiveExplorer + Selection.Item Method (Outlook)
示例
Option Explicit Public Sub Example() Dim email As Outlook.MailItem Set email = Application.ActiveExplorer.Selection.Item(1) Debug.Print email.Subject ' print on immediate window End Sub
Or Work with both opened and selected items
Function GetCurrentItem() As Object Dim objApp As Outlook.Application Set objApp = Application On Error Resume Next Select Case TypeName(objApp.ActiveWindow) Case "Explorer" Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1) Case "Inspector" Set GetCurrentItem = objApp.ActiveInspector.CurrentItem End Select Set objApp = Nothing End Function
答案 2 :(得分:0)
您无法连接两个HTML字符串并期望返回有效的HTML。这两者必须合并。
话虽如此,使用Word对象模型从剪贴板粘贴:
Application.ActiveEXplorer.ActiveInlineResponseWordEditor.Application.Selection.Paste()