我的计算机上有Outlook 2016,并且运行脚本"规则已被禁用。我知道应该在regedit
文件中进行更改,但我需要管理员权限才能执行此操作。我的IT团队位于全国各地,所以我已经等了两个星期让他们改变这一点,我确信它永远不会发生。
所以,我想知道是否有解决方法或方法来编写相同的流程?
当我收到主题行中包含某些单词的电子邮件时,我希望规则/脚本将文件附件(在电子邮件中)保存到计算机上的文件夹中。
我根本没有VBA专家(尤其是Outlook),所以我可能远离正确的道路,但我已经给了它一个机会:
Private Sub Application_Startup()
Dim oRule as Outlook.Rule
Dim oRuleAction as Outlook.RuleAction
Dim oRuleCondition as Outlook.RuleCondition
Set oRule = colRules.Create("Transfer Attachment", olRuleSubject)
Set oRuleCondition = oRule.Conditions.Subject("FINAL-CPW GRP SALES")
Set oRuleAction = SaveAtlasReport
End Sub
Public Sub SaveAtlasReport()
Dim att as Attachment
Dim FileName as string
FileName = "C:\Users\WCD1867\Documents\AttachTest\PositivePOS.xlsx"
att.SaveAsFile FileName
End Sub
答案 0 :(得分:1)
将“Outlook规则/运行脚本”替换为 Items.ItemAdd Event (Outlook) 和 Items.Restrict Method (Outlook) 至 {{3}主题行 。
实施例
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olNs As Outlook.NameSpace
Dim Inbox As Outlook.MAPIFolder
Dim Filter As String
Filter = "@SQL=" & Chr(34) & "urn:schemas:httpmail:subject" & _
Chr(34) & " Like '%FINAL-CPW GRP SALES%' AND " & _
Chr(34) & "urn:schemas:httpmail:hasattachment" & _
Chr(34) & "=1"
Set olNs = Application.GetNamespace("MAPI")
Set Inbox = olNs.GetDefaultFolder(olFolderInbox)
Set Items = Inbox.Items.Restrict(Filter)
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
If TypeOf Item Is Outlook.mailitem Then
Dim AtmtName As String
Dim FilePath As String
FilePath = "C:\Temp\"
Dim Atmt As Attachment
For Each Atmt In Item.Attachments
AtmtName = FilePath & Atmt.FileName
Debug.Print AtmtName ' Print on Immediate Window
Atmt.SaveAsFile AtmtName
Next
End If
End Sub
Filter Items 在将一个或多个项目添加到指定集合时发生。 当一次将大量项目添加到文件夹时,此事件不会运行。 Microsoft Visual Basic Scripting Edition(VBScript)中不提供此事件。
Items.ItemAdd Event (Outlook) 是使用Find方法或FindNext方法迭代集合中特定项目的替代方法。如果存在少量项目,则Find或FindNext方法比过滤更快。如果集合中有大量项目,则Restrict方法会明显加快,特别是如果预计只能找到大集合中的少数项目。
DASL过滤器支持的Items.Restrict method 包括等效,前缀,短语和子字符串匹配。请注意,当您对Subject属性进行过滤时,将忽略诸如“RE:”和“FW:”之类的前缀。 子>
对于想要编辑注册的人,请参阅Filtering Items Using a String Comparison
答案 1 :(得分:0)
根据定义,禁用运行脚本时无法运行脚本。如果可以,那么全球各地的黑客都会高兴,人们不得不停止使用Outlook进行公司邮件。
没有内置功能可以执行您想要的操作。
可以使用插件来完成,比如Kutools: https://www.extendoffice.com/product/kutools-for-outlook.html
出于安全考虑,您的IT部门可能不想让您这样做。你不应该试图规避你不理解其含义的规则。