Arl*_*ler 6 clipboard vba excel-vba outlook-vba outlook-2007
如何将电子邮件复制到剪贴板,然后将其粘贴到excel中,表格完好无损?
我正在使用Outlook 2007,我想做相同的
Run Code Online (Sandbox Code Playgroud)"Click on email > Select All > Copy > Switch to Excel > Select Cell > Paste".
我已经很好地弄清楚了Excel对象模型,但除了以下代码之外没有 Outlook的经验.
Dim mapi As NameSpace
Dim msg As Outlook.MailItem
Set mapi = Outlook.Application.GetNamespace("MAPI")
Set msg = mapi.Folders.Item(1).Folders.Item("Posteingang").Folders.Item(1).Folders.Item(7).Items.Item(526)
Run Code Online (Sandbox Code Playgroud)
我必须承认我在Outlook 2003中使用它,但请查看它是否也适用于2007:
您可以使用MSForms.DataObject与剪贴板交换数据.在Outlook VBA中,创建对" Microsoft Forms 2.0对象库 " 的引用,并尝试此代码(您当然可以将Sub()附加到按钮等):
Sub Test()
Dim M As MailItem, Buf As MSForms.DataObject
Set M = ActiveExplorer().Selection.Item(1)
Set Buf = New MSForms.DataObject
Buf.SetText M.HTMLBody
Buf.PutInClipboard
End Sub
Run Code Online (Sandbox Code Playgroud)
之后,切换到Excel并按Ctrl-V - 我们去!如果您还想查找当前正在运行的Excel应用程序并自动执行此操作,请告诉我们.
即使邮件是以纯文本或RTF格式发送的,也总是有效的HTMLBody,Excel将显示HTMLBody中传送的所有文本属性.列,颜色,字体,超链接,缩进等.但是,不会复制嵌入的图像.
此代码演示了基本要素,但不检查是否真的选择了MailItem.如果您想使其适用于日历条目,联系人等,则需要更多编码.
如果您在列表视图中选择了邮件就足够了,您甚至不需要打开它.
| 归档时间: |
|
| 查看次数: |
17505 次 |
| 最近记录: |