Outlook 2013规则将电子邮件正文复制到剪贴板

Outlook 2013规则将电子邮件正文复制到剪贴板

问题描述:

使用电子邮件规则触发VBA脚本,是否可以将电子邮件正文发送到剪贴板?我发现这个method,但它似乎没有工作。Outlook 2013规则将电子邮件正文复制到剪贴板

Sub SaveToClipboard(Item As Outlook.MailItem) 
Dim Explorer As Outlook.Explorer 
Dim oitem As Outlook.MailItem 
Dim oData As MSForms.DataObject 


Set Explorer = Application.ActiveExplorer 

If Explorer.Selection.Count Then 

    Set CurrentItem = Explorer.Selection(1) 
    Set oitem = CurrentItem 

    oData = oitem.Body 
    oData.PutInClipboard 

    'Using this to test the output 
    MsgBox oData 

End If 
End Sub 

接下来,我将如何搜索以“Info:”开头的电子邮件正文中的一行并仅将该行复制到剪贴板?

+0

每个线程只有一个问题。首先搜索诸如“vba结构化文本”之类的东西,并在您编写一些代码后,在必要时开始一个新问题。 – niton

您错过了该网站上示例中描述的重要部分。

以及使用传入的mailitem(itm作为mailItem)。

Option Explicit 

Private Sub SaveToClipboard_test() 

    Dim curritem As Object 
    Set curritem = ActiveExplorer.Selection(1) 
    If TypeOf curritem Is mailItem Then SaveToClipboard curritem 

ExitRoutine: 
    Set curritem = Nothing 

End Sub 


Sub SaveToClipboard(itm As mailItem) 

    Dim oData As MSForms.DataObject 
    Dim strPaste As Variant 

    Set oData = New MSForms.DataObject 
    oData.SetText itm.body 
    oData.PutInClipboard 

    oData.GetFromClipboard 
    strPaste = oData.GetText 

    strPaste = Left(strPaste, 1024) 
    MsgBox strPaste 

ExitRoutine: 
    Set oData = Nothing 

End Sub