Вопрос

Я хотел бы запустить URL-адрес при поступлении электронного письма в Outlook. Я настраиваю правило, и оно вызывает функцию сценария. Похоже, я хочу вызвать ShellExecute для запуска URL в браузере, но когда я нажимаю эту строку:

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

Метод не определен. Есть идеи?

Это было полезно?

Решение

ShellExecute - это функция в Windows DLL. Вам нужно добавить объявление для этого, как это в модуле 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      

Разница между вашим решением Shell и ShellExecute заключается в том, что ShellExecute будет использовать системный обработчик по умолчанию для URL-адресов, чтобы открыть ссылку. Это не должно быть IE. Ваше решение всегда откроет его в IE. Ваш эквивалент эквивалентен iexplore.exe в окне запуска в Windows. ShellExecute является эквивалентом простого размещения URL-адреса в окне выполнения в Windows.

Другие советы

Вы также можете использовать Followhyperlink из VBA, чтобы открыть URL-адреса в браузере по умолчанию. Его также можно использовать для открытия документов в зарегистрированном приложении, для отправки электронных писем и просмотра папок.

Либо используйте Shell , например так:

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

Вы можете создать командный файл, где вы напишите это:

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

И вы настраиваете правило Outlook для запуска этого пакетного файла. Обратите внимание на знак ^ перед & amp; Это escape-последовательность для & amp; в пакетных файлах. Также обратите внимание, что в вашей операционной системе Windows должен быть установлен браузер по умолчанию, почти 100% вероятность того, что он у вас есть.

Shell ("CMD /C start http://www.spamcop.net"), vbNormalFocus
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top