我正在尝试通过VBA检测投票按钮并批准它。我可以选择邮件,但我无法在MailItem类中找到任何方法来检测或批准投票按钮。 我选择当前电子邮件的代码
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim obj As MailItem
Set myOlExp = Application.ActiveExplorer
Set myOlSel = myOlExp.Selection
Set obj = myOlSel.Item(1)
答案 0 :(得分:0)
我无法在MailItem类中找到任何检测方法
MailItem对象具有由分号分隔的.VotingOptions
属性(字符串),例如"批准;拒绝"或"是;否"等等。
任何非空字符串都应表明存在投票按钮。
您表示您想要"批准投票按钮" - 这是什么意思?有一些标准的响应类型,但也可能有自定义响应。您无法自动处理任何可能的回复,即使您知道回复集,您如何自动"批准/拒绝或回答是/否 - 除非您阅读并理解他们要求您投票的内容?
所以我认为这不是一个好方法,但这里将是使用的方法:
If TypeName(obj) = "MailItem" And obj.VotingOptions <> vbNullString Then
obj.VotingResponse = "Yes"
End If
检查您的&#34;默认&#34;响应是一个有效的响应(无效的响应在我测试时似乎不会引发错误):
Dim defaultResponse as String
Dim resp as String
defaultResponse = "Approve"
If TypeName(obj) = "MailItem" And obj.VotingOptions <> vbNullString Then
For each resp in Split(obj.VotingOptions, ";")
if resp = defaultResponse Then
obj.VotingResponse = "Yes"
Exit For
End If
Next
End If
您当然可以扩展逻辑以涵盖不同的场景等。
To&#34;编辑回复&#34;你可以这样做:
Dim m As MailItem
Set m = obj.Reply 'or obj.ReplyAll
m.Body = "Insert your response here!" '## Modify as needed
m.Display 'optional
m.Save
m.Send
答案 1 :(得分:0)
我能够使用此代码:
Sub SendEmail()
Dim myOlExp As Outlook.Explorer
Dim hk() As String
Dim myOlSel As Outlook.Selection
Dim obj As MailItem
Dim obj2 As Outlook.MailItem
Set myOlExp = Application.ActiveExplorer
Set myOlSel = myOlExp.Selection
Set obj = myOlSel.Item(1)
For Each MA In obj.Actions
If MA.Name = "Approved" Then
Set obj2 = Ma.Execute
obj.Body = "My Message"
obj.Send
Exit For
End If
Next MA
End Sub