2 votes

Comment pouvez-vous ouvrir/afficher des fichiers .eml dans Outlook 2007 (sans autorisations regedit)?

Pour ceux d'entre nous dans un environnement d'entreprise qui n'ont aucun contrôle sur le client de messagerie à utiliser, la solution suggérée par Microsoft (et beaucoup d'autres sources) pour ouvrir les fichiers .eml dans Outlook 2007 ne fonctionne pas, car nous n'avons généralement pas accès au registre et ne pouvons pas télécharger d'extensions.

Une solution enfouie dans les nombreux messages frustrés des utilisateurs de forums est d'utiliser l'application "Exécuter" avec la construction suivante :

"[chemin vers outlook]\Outlook.exe" /eml "[chemin vers le fichier eml]\[Nom du fichier].eml"

Est-il possible d'intégrer cela à l'intérieur d'une macro accessible depuis (par exemple) Outlook lui-même ?

1voto

neophlegm Points 291

Le code suivant fonctionnera lorsqu'il est exécuté depuis Outlook 07; il demande un fichier .eml puis l'ouvre en utilisant une commande shell sous la forme de l'invite "Exécuter" dans la question. Malheureusement, en raison du support 'unique' de Microsoft pour les objets VBA, il n'est pas possible d'appeler FileDialog(msoFileDialogFilePicker) depuis Outlook.

Par conséquent, les appels ci-dessous invoquent une instance d'Excel pour gérer la boîte de dialogue. La ligne Application.Visible = True assure que la boîte de dialogue est mise au premier plan, car elle peut s'ouvrir derrière l'application en cours en fonction de l'environnement de la fenêtre.

Vous devrez peut-être modifier C:\Program Files (x86)\Microsoft Office\Office12\Outlook.exe pour refléter l'emplacement d'installation de votre copie d'Outlook.

Sub OpenEML()
'   Macro pour ouvrir les fichiers de type EML outlook
    Dim otherObject
    Dim fDialog As Office.FileDialog
    Set otherObject = CreateObject("Excel.Application")
    Set fDialog = otherObject.Application.FileDialog(msoFileDialogFilePicker)

    With fDialog
        .AllowMultiSelect = False
        .ButtonName = "Ouvrir"
        .Title = "Sélectionnez un fichier EML"
        'Permettre uniquement la sélection eml
        .Filters.Add "EML", "*.eml", 1
        otherObject.Application.Visible = True
        .Show
        otherObject.Application.Visible = False
        'Si certains éléments sont sélectionnés...
        If .SelectedItems.Count <> 0 Then
            fileNm = .SelectedItems(1)
        Else
            MsgBox "Rien de sélectionné"
            Exit Sub
        End If
    End With

    Dim appNm As String
    appNm = "C:\Program Files (x86)\Microsoft Office\Office12\Outlook.exe"
    Dim retval
    'MsgBox """" & appNm & """"
    retval = Shell("""" & appNm & """" & " /eml " & """" & fileNm & """", vbNormalFocus)

End Sub

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X