【问题标题】:Outlook Download Files from HyperlinkOutlook 从超链接下载文件
【发布时间】:2023-03-03 01:55:02
【问题描述】:

我正在寻求一些帮助,以自动完成我每天多次执行的任务。

我收到来自某个地址的电子邮件,我会自动将其分类(使用规则)到一个专用文件夹中。

这些电子邮件包含指向要从网络下载的文档的超链接;但是这些链接不是写为 URL,而是有一个链接说“下载所有文档”。

我点击这个链接,它会打开一个包含所有文档的 zip 文件的 URL。然后我将这个 zip 文件以某种命名格式保存到某个文件夹中。

我希望自动化这个过程。手动完成是一项繁琐的任务,因为我收到了很多这样的电子邮件,并且重命名它们需要时间,因为默认名称包含非法字符。

我以前做过一些编程,但在 VBA (Excel) 中只做了一点点,从来没有在 Outlook 中做过。

我在论坛中搜索过类似问题,看来我可以使用 URLDownloadToFile 函数(例如UrlDownloadToFile in Access 2010 - Sub or Function not Defined);但是我需要将一个 URL 传递给该函数,我不知道如何从电子邮件中获取它,因为它不包含在电子邮件的正文中。

有人可以帮我吗?

【问题讨论】:

  • 您能否发布完整的工作代码作为答案并接受它?它也会帮助像我和其他人这样的人:)

标签: vba outlook hyperlink outlook-2013


【解决方案1】:

网址在超链接中。 https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.hyperlink_members.aspx

Sub HyperlinkAddress()

Dim msg As Object
Dim oDoc As Object
Dim h As Object

Set msg = ActiveInspector.currentItem

If msg.GetInspector.EditorType = olEditorWord Then

    Set oDoc = msg.GetInspector.WordEditor

    For Each h In oDoc.Hyperlinks
        Debug.Print "Displayed text: " & h.TextToDisplay & vbCr & " - Address: " & h.Address
        'h.Follow
    Next

End If

Set msg = Nothing
Set oDoc = Nothing
Set h = Nothing

End Sub

【讨论】:

  • 谢谢。我实际上设法以不同的方式做到这一点 - 通过使用 .HTMLBody 属性,然后在其中找到“下载所有文档”字符串,然后在该链接旁边的 html 代码中找到链接地址。不过,这有点笨拙,您的方式似乎更干净。唯一的问题是我不能通过在 Outlook 中选择电子邮件来使用它,我必须在窗口中打开它。有没有解决的办法?我可以编写代码在窗口中打开选择,然后在最后关闭它,但同样,感觉有点笨拙。
  • 设置 msg = ActiveExplorer.Selection.Item(1)
  • 太好了,谢谢!已经编写了我所有的代码,并对其进行了测试,并且运行良好。
猜你喜欢
  • 1970-01-01
  • 2016-11-07
  • 2015-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-19
相关资源
最近更新 更多