Pregunta

Me gustaría lanzar una URL cuando llegue un correo electrónico a Outlook. Configuro una regla y hago que active una función de script. Parece que quiero llamar a ShellExecute para iniciar la URL en un navegador, pero cuando llego a esta línea:

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

El método no está definido. ¿Alguna idea?

¿Fue útil?

Solución

ShellExecute es una función en un dll de windows. Debe agregar una declaración como esta en un módulo 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 diferencia entre su solución Shell y ShellExecute es que ShellExecute utilizará el controlador del sistema predeterminado para las URL para abrir el enlace. Esto no tiene que ser IE. Su solución siempre la abrirá en IE. El suyo es el equivalente a poner iexplore.exe en el cuadro de ejecución en Windows. ShellExecute es el equivalente a simplemente poner la url en el cuadro de ejecución en Windows.

Otros consejos

También puede usar Followhyperlink de VBA para abrir URL en el navegador predeterminado. También se puede usar para abrir documentos con la aplicación registrada, enviar correos electrónicos y examinar carpetas.

Alternativamente, use Shell , así:

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

Puede crear un archivo por lotes donde escriba esto:

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

Y configura la regla de Outlook para iniciar este archivo por lotes. Observe ^ firme antes de & amp ;. Esta es la secuencia de escape para & amp; en archivos por lotes. También tenga en cuenta que necesita tener un navegador predeterminado configurado en su sistema operativo Windows, casi 100% de probabilidad de que lo tenga.

Shell ("CMD /C start http://www.spamcop.net"), vbNormalFocus
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top