Outlook にメールが届いたときに URL を起動したいと考えています。ルールを設定し、スクリプト関数をトリガーします。ShellExecute を呼び出してブラウザーで URL を起動したいようですが、次の行にヒットすると:
ShellExecute(0&, "open", URL, vbNullString, vbNullString, _
vbNormalFocus)
メソッドが定義されていません。何か案は?
Outlook にメールが届いたときに URL を起動したいと考えています。ルールを設定し、スクリプト関数をトリガーします。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 は、Windows の実行ボックスに URL を入力するのと同じです。
また、VBA からFollowhyperlinkを使用して、既定のブラウザーで URL を開くこともできます。また、登録したアプリケーションでドキュメントを開いたり、電子メールを送信したり、フォルダーを参照したりすることもできます。
Shell ("CMD /C start http://www.spamcop.net"), vbNormalFocus
または、次のように を使用しますShell
。
Sub LaunchURL(Item As Outlook.MailItem)
Shell ("C:\Program Files\Internet Explorer\IEXPLORE.EXE" & " " & Item.Body)
End Sub