激活电子邮件中包含的特定网址

时间:2017-08-05 16:25:35

标签: vba outlook

我对VBA几乎一无所知,但我正在努力学习。我正在努力帮助盲人客户从他使用的特定机构获取信息以获得自由职业。这些消息必须通过单击消息中的“接受”链接几乎立即响应,否则无法获得该作业。由于他使用屏幕阅读器,这使问题变得复杂。

我已经尝试调整我在stackoverflow上发现的内容,以便在接收时收到消息,由消息规则触发,调用VBA代码来挖掘URL并立即激活它。

Sub LaunchURL(itm As MailItem)

    Dim MsgBody As String
    Dim AllMsgLines
    Dim IndividualLine
    Dim AllLineWords
    Dim SingleWord
    Dim MboxReply

    MsgBody = itm.Body
    AllMsgLines = Split(MsgBody, vbCrLf)

    For Each IndividualLine In AllMsgLines
        AllLineWords = Split(IndividualLine, " ")

        For Each SingleWord In AllLineWords
            If SingleWord Like "http://*" Then
                MboxReply = MessageBox.Show("I've found a URL", "LaunchURL Script", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk)
                Set itm = Nothing
                Exit Sub
            End If
        Next SingleWord

    Next IndividualLine 

    Set itm = Nothing
End Sub

Private Sub TestLaunchURL()
    Dim currItem As MailItem
    Set currItem = ActiveInspector.CurrentItem
    LaunchURL currItem
End Sub

上面的代码是我一直在尝试的。我实际上会用以下内容替换消息框:

Shell ("C:\Program Files\Internet Explorer\IEXPLORE.EXE" & " " & SingleWord)

FollowHyperlink SingleWord

当我运行它时,我得到“运行时错误91:对象变量或未设置块变量”。我已经尝试进入代码,从我可以看出问题源于TestLaunchURL子例程中的SET语句。

我正试图抓住我目前在Outlook收件箱中关注的邮件,并将其解析为“http://”的第一个实例,至少目前是这样。

另外,如果我的网址中包含与实际网址绑定的用户显示的点击文字,那么我期望在“SingleWord”中返回什么?我可以利用它来寻找“接受”这个词,就在URL本身“接受”点击文本之前。

0 个答案:

没有答案