我在我的oulook VBE中复制了以下代码,来自其中一个VBA社区,并根据我的需要对其进行了修改.我可以使用F5和F8运行它.现在,每当我收到folder1中的电子邮件时,我都想运行此宏.我尝试设置规则,但我看不到"运行脚本"选择框中列出的宏.我已经检查过了
你能告诉我这个环境出了什么问题.
Public Sub SaveAttachments()
    Dim myOlapp As Outlook.Application
    Dim myNameSpace As Outlook.NameSpace
    Dim myFolder As Outlook.MAPIFolder
    Dim yourFolder As Outlook.MAPIFolder
    Dim myItem As Outlook.MailItem
    Dim myAttachment As Outlook.Attachment
    Dim I As Long
    Set myOlapp = CreateObject("Outlook.Application")
    Set myNameSpace = myOlapp.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
    Set yourFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
    Set myFolder = myFolder.Folders("folder1")
    Set yourFolder = yourFolder.Folders("folder2")
    For Each myItem In myFolder.Items
        If myItem.Attachments.Count <> 0 Then
            For Each myAttachment In myItem.Attachments
                I = I + 1 …我有一个文件夹,其中包含许多电子邮件和子文件夹.在这些子文件夹中有更多电子邮件.
我想写一些VBA,它将遍历某个文件夹中的所有电子邮件,包括任何子文件夹中的电子邮件.我们的想法是从每封电子邮件中提取SenderEmailAddress和SenderName使用它.
我尝试将文件夹导出为仅包含这两个字段的CSV,虽然这有效,但它不支持导出子文件夹中保存的电子邮件.因此需要编写一些VBA.
在我重新发明轮子之前,是否有人有任何代码片段或链接到网站,给定文件夹名称,显示如何获取MailItem该文件夹和后续子文件夹中的每个电子邮件的对象?
我正在尝试调试由规则触发的Outlook 2007 VBA脚本.我在脚本中设置了一个断点,但它没有被击中.
该脚本实际上是一个是Sub在ThisOutlookSession对象.
当我在指定文件夹上运行规则时似乎没有发生任何事情.
我究竟做错了什么?
更新:
我已经MsgBox "Processing: " & mailItem.Subject在脚本中添加了一个,当我运行规则时弹出就好了.但是我似乎无法让脚本停在断点上.
我从Outlook规则脚本调用Excel宏.
该过程是:获取邮件,运行运行Outlook脚本的Outlook规则,从该脚本打开Excel,运行Excel宏,关闭Excel.
如何在Outlook规则脚本中验证Excel宏已完成,以保存并关闭应用程序?
 Sub AskMeAlerts()
 Dim appExcel As Excel.Application 
 Dim wkb As Excel.Workbook 
 Set appExcel = CreateObject("Excel.Application") 
 appExcel.Workbooks.Open ("C:\Ask me question workflow.xlsm") 
 appExcel.Visible = True 
 appExcel.Run "'Ask me question workflow.xlsm'!AskMeFlow" 
 appExcel.DisplayAlerts = False 
 appExcel.ActiveWorkbook.Save 
 appExcel.Quit Set appExcel = Nothing 
 Set wkb = Nothing 
 End Sub
我正在为Outlook 2013编写一个使用正则表达式的VBA脚本,我发现的每个示例似乎都用于Set regex = New RegExp创建一个RegExp对象.当我尝试这个时,我得到了编译错误:未定义用户定义的类型.
我设法让正则表达式使用Set regex = CreateObject("vbscript.regexp").
第一个选项不起作用的原因是什么?
我已经编写了一个宏来迭代用户日历,并修改了对某个critera有用的条目.
问题是,当日历非常大时,这需要很长时间.我似乎无法过滤约会,因为oAppointmentItems似乎在创建条目时存储条目 - 这不一定与它们开始时的顺序相同.
我正在使用的代码是这样的:
Dim oOL As New Outlook.Application
Dim oNS As Outlook.NameSpace
Dim oAppointments As Object
Dim oAppointmentItem As Outlook.AppointmentItem
Set oNS = oOL.GetNamespace("MAPI")
Set oAppointments = oNS.GetDefaultFolder(olFolderCalendar)
For Each oAppointmentItem In oAppointments.Items
    DoEvents
    ' Something here
Next
Set oAppointmentItem = Nothing
Set oAppointments = Nothing
Set oNS = Nothing
Set oOL = Nothing
没有删除DoEvents(这只意味着Outlook似乎锁定用户)有什么办法可以通过应用某种过滤器加快速度?例如,将来开始的约会.
我想开发以下VBA代码:
代码工作完美除外; 例如
问题:在运行代码之后,它应该处理所有文件并删除它们,而不是每次运行中的一半.我想让它在一次运行中处理所有项目.
顺便说一下,每次打开Outlook时都会运行此代码.
Private Sub Application_Startup()
'Initializing Application_Startup forces the macros to be accessible from other offic apps
'Process XML emails
Dim InboxMsg As Object
Dim DeletedItems As Outlook.Folder
Dim MsgAttachment As Outlook.Attachment
Dim ns As Outlook.NameSpace
Dim Inbox As Outlook.Folder
Dim fPathTemp As String
Dim fPathXML_SEM As String
Dim fPathEmail_SEM As String
Dim i As Long
Dim xmlDoc As New MSXML2.DOMDocument60
Dim xmlTitle As MSXML2.IXMLDOMNode
Dim xmlSupNum As …我想在Mac上自动化Outlook 2016 .
我想要自动化的任务基本上如下:
好吧,我只是不知道如何处理它...
请注意,我可以访问Windows机器.因此,我可以(虽然痛苦)在那里编写VBA脚本并将其"转移"到Mac.我没有Office 365.
谢谢你的帮助!
西尔
我有以下代码,告诉新消息何时到达!
Private Sub Application_NewMail()
    MsgBox "New Mail Has Arrived"
End Sub
我如何阅读这封邮件的主体?有什么好的Outlook编程教程吗?
我发现msdn教程很有用但是概述.
我确实收到了各种机器人发送的大量邮件.我可以通过主题轻松识别电子邮件(例如:"对故障单123的响应").不幸的是,每封电子邮件都是自动生成的
对于此Outlook,不会将它们组合为普通会话.
我想知道是否可以修改例如邮件属性"ConversationID"?我是否需要创建"ConversationTopic"并将其分配给相关的MailItems?
outlook-vba ×10
vba ×10
outlook ×8
applescript ×1
calendar ×1
excel ×1
for-loop ×1
iteration ×1
macos ×1
mailitem ×1
outlook-2007 ×1
regex ×1
wait ×1