标签: outlook-vba

我在"运行脚本"选择框中看不到我的VBA宏

我在我的oulook VBE中复制了以下代码,来自其中一个VBA社区,并根据我的需要对其进行了修改.我可以使用F5和F8运行它.现在,每当我收到folder1中的电子邮件时,我都想运行此宏.我尝试设置规则,但我看不到"运行脚本"选择框中列出的宏.我已经检查过了

  1. 宏安全设置是正确的
  2. 宏是在一个不在类中的模块中

你能告诉我这个环境出了什么问题.

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 …
Run Code Online (Sandbox Code Playgroud)

vba outlook-vba

14
推荐指数
1
解决办法
3万
查看次数

我可以遍历包含子文件夹的文件夹中的所有Outlook电子邮件吗?

我有一个文件夹,其中包含许多电子邮件和子文件夹.在这些子文件夹中有更多电子邮件.

我想写一些VBA,它将遍历某个文件夹中的所有电子邮件,包括任何子文件夹中的电子邮件.我们的想法是从每封电子邮件中提取SenderEmailAddressSenderName使用它.

我尝试将文件夹导出为仅包含这两个字段的CSV,虽然这有效,但它不支持导出子文件夹中保存的电子邮件.因此需要编写一些VBA.

在我重新发明轮子之前,是否有人有任何代码片段或链接到网站,给定文件夹名称,显示如何获取MailItem该文件夹后续子文件夹中的每个电子邮件的对象?

outlook vba mailitem outlook-object-model outlook-vba

13
推荐指数
2
解决办法
4万
查看次数

调试规则触发的Outlook 2007脚本

我正在尝试调试由规则触发的Outlook 2007 VBA脚本.我在脚本中设置了一个断点,但它没有被击中.

该脚本实际上是一个是SubThisOutlookSession对象.

当我在指定文件夹上运行规则时似乎没有发生任何事情.

我究竟做错了什么?

更新:

我已经MsgBox "Processing: " & mailItem.Subject在脚本中添加了一个,当我运行规则时弹出就好了.但是我似乎无法让脚本停在断点上.

outlook vba outlook-vba outlook-2007

13
推荐指数
1
解决办法
9884
查看次数

VBA Outlook调用Excel宏并等到宏完成

我从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
Run Code Online (Sandbox Code Playgroud)

excel outlook vba wait outlook-vba

13
推荐指数
1
解决办法
1751
查看次数

VBS RegExp导致编译错误,而vbscript.regexp工作

我正在为Outlook 2013编写一个使用正则表达式的VBA脚本,我发现的每个示例似乎都用于Set regex = New RegExp创建一个RegExp对象.当我尝试这个时,我得到了编译错误:未定义用户定义的类型.

我设法让正则表达式使用Set regex = CreateObject("vbscript.regexp").

第一个选项不起作用的原因是什么?

regex vba outlook-vba

13
推荐指数
1
解决办法
1万
查看次数

通过Outlook约会项快速迭代

我已经编写了一个宏来迭代用户日历,并修改了对某个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
Run Code Online (Sandbox Code Playgroud)

没有删除DoEvents(这只意味着Outlook似乎锁定用户)有什么办法可以通过应用某种过滤器加快速度?例如,将来开始的约会.

iteration outlook vba calendar outlook-vba

12
推荐指数
1
解决办法
2万
查看次数

对于每个循环:在循环浏览Outlook邮箱以删除项目时会跳过某些项目

我想开发以下VBA代码:

  1. 循环遍历邮箱中的所有电子邮件项目
  2. 如果有任何类型的其他项目说"日历邀请"跳过该项目.
  3. 查找带附件的电子邮件
  4. 如果附加文件中包含".xml"扩展名和特定标题,则将其保存到目录中,如果没有继续搜索
  5. 在执行步骤4后,将所有电子邮件中的.xml附件包含在"已删除邮件"文件夹中,并通过循环删除该文件夹中的所有电子邮件.

代码工作完美除外; 例如

  1. 收到8封电子邮件,其中每个邮箱都附有".xml"文件.
  2. 运行代码
  3. 你会看到8个项目中只有4个被成功处理,其他4个仍然在他们的位置.
  4. 如果再次运行代码,现在将成功处理2个项目,而其他2个项目仍保留在您的邮箱中.

问题:在运行代码之后,它应该处理所有文件并删除它们,而不是每次运行中的一半.我想让它在一次运行中处理所有项目.

顺便说一下,每次打开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 …
Run Code Online (Sandbox Code Playgroud)

outlook vba for-loop outlook-vba

12
推荐指数
2
解决办法
2万
查看次数

在Mac上编写Office Outlook 2016脚本

我想在Mac上自动化Outlook 2016 .

我想要自动化的任务基本上如下:

  • 在前一周搜索收件箱中的邮件,标题中包含特定模式
  • 准备一封新邮件,其内容是上一步中找到的所有邮件的合并内容
  • 让邮件打开(或在草稿中)让我在发送之前编辑它

好吧,我只是不知道如何处理它...

  • 在Mac上的Outlook 2016中,Visual Basic(我的首选选项)似乎根本不存在!我甚至找不到VB编辑器(虽然我确实找到了例如excel).
  • AppleScript可能允许这样做.但我只是没有找到有关outlook API的任何文档.此外,它似乎只允许非常基本的自动化.
  • 的Automator?

请注意,我可以访问Windows机器.因此,我可以(虽然痛苦)在那里编写VBA脚本并将其"转移"到Mac.我没有Office 365.

谢谢你的帮助!

西尔

macos outlook applescript vba outlook-vba

12
推荐指数
1
解决办法
2万
查看次数

使用VBA阅读新的Outlook电子邮件?

我有以下代码,告诉新消息何时到达!

Private Sub Application_NewMail()
    MsgBox "New Mail Has Arrived"
End Sub
Run Code Online (Sandbox Code Playgroud)

我如何阅读这封邮件的主体?有什么好的Outlook编程教程吗?

我发现msdn教程很有用但是概述.

outlook vba outlook-vba

11
推荐指数
1
解决办法
3万
查看次数

我可以通过VBA修改Outlook中的对话ID以对独立的电子邮件进行分组吗?

我确实收到了各种机器人发送的大量邮件.我可以通过主题轻松识别电子邮件(例如:"对故障单123的响应").不幸的是,每封电子邮件都是自动生成的

对于此Outlook,不会将它们组合为普通会话.

我想知道是否可以修改例如邮件属性"ConversationID"?我是否需要创建"ConversationTopic"并将其分配给相关的MailItems?

outlook vba outlook-vba

11
推荐指数
2
解决办法
1679
查看次数