Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 激活电子邮件中包含的特定URL_Vba_Outlook - Fatal编程技术网

Vba 激活电子邮件中包含的特定URL

Vba 激活电子邮件中包含的特定URL,vba,outlook,Vba,Outlook,我对VBA几乎一无所知,但正在努力学习。我正试图帮助一个盲人客户,他从一个特定的机构获得信息,他利用这个机构获得自由职业者的合约。这些信息必须通过点击信息中的“接受”链接立即回复,否则就没有机会得到这份工作。由于他使用屏幕阅读器,这使事情复杂化 我已尝试调整在stackoverflow上发现的内容,以便在收到消息时接收由消息规则触发的消息,调用VBA代码来挖掘URL并立即激活它 Sub LaunchURL(itm As MailItem) Dim MsgBody As String

我对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)

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

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


另外,如果我有一个链接到实际URL本身并向用户显示点击文本的URL,“SingleWord”中会返回什么?我可能可以利用它来查找URL前面的单词“Accept”,即“Accept”点击文本。

在尝试TestLaunchURL之前打开一个项目。如果您希望切换到设置currItem=ActiveExplorer.Selection(1),可以选择。谢谢。这无疑让我对代码进行了深入的研究,我找到了如何设置一个手表来查看某些变量的值,这是我需要做的。如果在用户有机会触摸消息之前,在收到消息时触发ActiveExplorer.Selection(1)是否会返回到原始的ActiveInspector.CurrentItem?在那个上下文中,它不是活动的选择,但我不确定在那个上下文中什么语法是合适的。我在这里尝试提前思考。稍后将不使用TestLaunchURL。它用于测试,因此您不必将测试项目邮寄给自己。对于真正的测试,请设置runascript选项指向LaunchURL的规则。在LaunchURL中放置断点,以便您可以逐步完成代码并向自己发送测试项。这可能超出vba领域,但仍然相关,即使您可以向我指出正确的参考资料。我知道TestLaunchURL是严格的,所以我可以手动触发LaunchURL。我想,当我想到规则时,我想到的是过滤规则,所以我试图弄清楚当消息传入时,从规则调用LaunchURL时,如何调用LaunchURL。Google运行脚本了望在尝试TestLaunchURL之前打开一个项。如果您希望切换到设置currItem=ActiveExplorer.Selection(1),可以选择。谢谢。这无疑让我对代码进行了深入的研究,我找到了如何设置一个手表来查看某些变量的值,这是我需要做的。如果在用户有机会触摸消息之前,在收到消息时触发ActiveExplorer.Selection(1)是否会返回到原始的ActiveInspector.CurrentItem?在那个上下文中,它不是活动的选择,但我不确定在那个上下文中什么语法是合适的。我在这里尝试提前思考。稍后将不使用TestLaunchURL。它用于测试,因此您不必将测试项目邮寄给自己。对于真正的测试,请设置runascript选项指向LaunchURL的规则。在LaunchURL中放置断点,以便您可以逐步完成代码并向自己发送测试项。这可能超出vba领域,但仍然相关,即使您可以向我指出正确的参考资料。我知道TestLaunchURL是严格的,所以我可以手动触发LaunchURL。我想,当我想到规则时,我想到的是过滤规则,所以我试图弄清楚,当消息传入时,从规则调用LaunchURL时,如何调用LaunchURL
FollowHyperlink SingleWord