Frage

Ich möchte eine URL starten, wenn eine E-Mail in Outlook ankommt. Ich Setup eine Regel und haben eine Skriptfunktion auslösen. Es sieht aus wie ich will ShellExecute rufen Sie die URL in einem Browser zu starten, aber wenn ich treffe diese Zeile:

    ShellExecute(0&, "open", URL, vbNullString, vbNullString, _
vbNormalFocus)

Das Verfahren ist nicht definiert. Irgendwelche Ideen?

War es hilfreich?

Lösung

ShellExecute ist eine Funktion in einem Windows-DLL. Sie müssen eine Erklärung dafür, wie diese in einer VBA-Modul hinzuzufügen:

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
    ByVal hWnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long      

Der Unterschied zwischen Ihrer Shell-Lösung und ShellExecute ist, dass ShellExecute wird den Standard-System Handler für URLs den Link zu öffnen. Dies muss nicht IE sein. Ihre Lösung öffnet es immer im Internet Explorer. Dein ist das Äquivalent in den Fenstern iexplore.exe in die Box laufen setzen. ShellExecute ist das Äquivalent von nur die URL in das Feld in Fenster setzen.

Andere Tipps

Sie können auch verwenden FollowHyperlink aus VBA zu öffnen URLs im Standardbrowser. Es kann auch mit der registrierten Anwendung zu öffnen Dokumente verwendet werden, E-Mails zu senden und Ordner zu durchsuchen.

Alternativ Verwendung Shell, wie folgt aus:

Sub LaunchURL(Item As Outlook.MailItem)
    Shell ("C:\Program Files\Internet Explorer\IEXPLORE.EXE" & " " & Item.Body)
End Sub

Sie können Batch-Datei erstellen, in dem Sie schreiben:

start http://someurl.com/?a=1^&b=2

Und Sie konfigurieren Outlook-Regel diese Batchdatei zu starten. Hinweis ^ Zeichen vor &. Dies ist Escape-Sequenz für & in Batch-Dateien. Beachten Sie auch, dass Sie Standard-Browser eingestellt haben, in Ihrem Windows-Betriebssystem, nahezu 100% Wahrscheinlichkeit benötigen, die Sie haben es.

Shell ("CMD /C start http://www.spamcop.net"), vbNormalFocus
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top