2015-07-20 4 views
0

Je cherche de l'aide pour automatiser une tâche que je fais plusieurs fois par jour.Outlook Télécharger des fichiers depuis l'hyperlien

Je reçois des courriels d'une certaine adresse que je trie automatiquement (en utilisant des règles) dans un dossier dédié.

Ces courriels contiennent des hyperliens vers des documents à télécharger sur le Web; Cependant, les liens ne sont pas écrits comme une URL, mais plutôt un lien disant "Télécharger tous les documents".

Je clique sur ce lien, il ouvre l'URL qui est un fichier zip de tous les documents. Je puis enregistrer ce fichier zip dans un certain format de nommage dans un certain dossier.

Je cherche à automatiser ce processus. C'est une tâche fastidieuse de le faire manuellement parce que je reçois beaucoup de ces e-mails, et les renommer prend du temps parce que le nom par défaut contient des caractères illégaux.

J'ai déjà fait de la programmation, mais seulement un peu en VBA (Excel) et jamais pour Outlook.

J'ai recherché dans les forums pour des questions similaires, et il semble que je peux utiliser la fonction URLDownloadToFile (par exemple UrlDownloadToFile in Access 2010 - Sub or Function not Defined); Cependant, je dois passer une URL à cette fonction, et je ne sais pas comment l'extraire de l'e-mail, car il n'est pas contenu dans le corps de l'e-mail.

Quelqu'un peut-il m'aider ici?

Répondre

1

L'adresse URL est dans l'hyperlien. 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

Merci. J'ai effectivement réussi à le faire d'une manière différente - en utilisant la propriété .HTMLBody, puis en trouvant la chaîne "Télécharger tous les documents", puis en trouvant l'adresse du lien dans le code html à côté de ce lien. C'est un peu maladroit cependant, votre chemin semble plus propre. La seule chose est que je ne peux pas l'utiliser en sélectionnant simplement l'email dans Outlook, je dois l'ouvrir dans une fenêtre. Y a-t-il un moyen de contourner ceci? Je peux écrire du code pour ouvrir la sélection dans une fenêtre, puis la fermer à la fin, mais encore une fois, cela me semble un peu maladroit. – Oliver

+0

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

+0

Génial, merci! J'ai écrit tout mon code, je l'ai testé et ça fonctionne bien. – Oliver