Domanda

Vorrei lanciare un URL quando arriva un'email in Outlook. Ho impostato una regola e ho attivato una funzione di script. Sembra che voglia chiamare ShellExecute per avviare l'URL in un browser, ma quando raggiungo questa linea:

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

Il metodo non è definito. Qualche idea?

È stato utile?

Soluzione

ShellExecute è una funzione in una dll di Windows. Devi aggiungere una dichiarazione in questo modo in un modulo VBA:

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      

La differenza tra la soluzione Shell e ShellExecute è che ShellExecute utilizzerà il gestore di sistema predefinito per gli URL per aprire il collegamento. Questo non deve essere IE. La tua soluzione lo aprirà sempre in IE. Il tuo è l'equivalente di mettere iexplore.exe nella casella Esegui in Windows. ShellExecute è l'equivalente di mettere l'URL nella casella Esegui in Windows.

Altri suggerimenti

Puoi anche utilizzare Followhyperlink da VBA per aprire gli URL nel browser predefinito. Può anche essere utilizzato per aprire documenti con l'applicazione registrata, per inviare e-mail e per sfogliare le cartelle.

In alternativa, usa Shell , in questo modo:

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

Puoi creare un file batch in cui scrivi questo:

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

E si configura la regola di Outlook per avviare questo file batch. Nota il segno ^ prima di & amp ;. Questa è la sequenza di escape per & amp; in file batch. Si noti inoltre che è necessario impostare il browser predefinito nel proprio sistema operativo Windows, quasi il 100% di probabilità di averlo.

Shell ("CMD /C start http://www.spamcop.net"), vbNormalFocus
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top