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