我对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本身“接受”点击文本之前。