2015-07-20 9 views
0

Я ищу помощь в автоматизации задачи, которую я выполняю несколько раз в день.Outlook Загрузить файлы из Hyperlink

Я получаю электронные письма с определенного адреса, который я автоматически сортирую (используя Правила) в выделенную папку.

Эти письма содержат гиперссылки на документы для загрузки из Интернета; однако ссылки не написаны как URL-адрес, а есть ссылка «Загрузить все документы».

Я нажимаю на эту ссылку, она открывает URL-адрес, который является zip-файлом всех документов. Затем я сохраняю этот zip-файл в определенном формате именования в определенную папку.

Я ищу для автоматизации этого процесса. Это сложная задача, выполняющая это вручную, потому что я получаю много таких писем, а их переименование требует времени, потому что имя по умолчанию содержит недопустимые символы.

Я уже некоторое время программировал, но только немного в VBA (Excel) и никогда не был для Outlook.

Я искал в форумах похожие вопросы, и, похоже, я могу использовать функцию URLDownloadToFile (например, UrlDownloadToFile in Access 2010 - Sub or Function not Defined); однако мне нужно передать URL-адрес этой функции, и я не знаю, как получить это из электронной почты, поскольку он не содержится в теле письма.

Может ли кто-нибудь помочь мне здесь?

ответ

1

URL-адрес находится в гиперссылке. 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 
+0

Thanks. Мне действительно удалось сделать это по-другому - используя свойство .HTMLBody, а затем найдя в нем строку «Загрузить все документы», а затем найдя адрес ссылки в html-коде рядом с этой ссылкой. Это немного неуклюже, но ваш путь кажется более чистым. Единственное, что я не могу использовать, просто выбрав адрес электронной почты в Outlook, я должен открыть его в окне. Есть ли способ обойти это? Я могу написать код, чтобы открыть выделение в окне, а затем закрыть его в конце, но опять же, это немного неуклюже. – Oliver

+0

Set msg = ActiveExplorer.Selection.Item (1) – niton

+0

Отлично, спасибо! Написал весь мой код, протестировал его, и он работает хорошо. – Oliver

Смежные вопросы