系统:Windows 10
软件:Outlook 2016

  • 本系列讲讲在Outlook中使用VBA实现一些功能
  • 今天讲讲当收件箱收到一个新邮件的时候,会触发响应

Part 1:场景描述

  1. 我们希望对收件箱进行监控,每收到一个新邮件的时候,就触发一个动作
  2. 延伸一下,我们可以对特定邮件进行处理,如邮件主题还有特定关键字的,等等

收到一封新邮件

Part 2:代码

Private WithEvents Items As Outlook.ItemsPrivate Sub Application_Startup()Dim outlookFldr As FolderDim outlookName As NameSpaceSet outlookName = Application.GetNamespace("MAPI")Set outlookFldr = outlookName.GetDefaultFolder(olFolderInbox)Set Items = outlookFldr.Items
End SubPrivate Sub Items_ItemAdd(ByVal Item As Object)Debug.Print ("新收到的邮件主题是:" & Item.Subject)MsgBox "新收到的邮件主题是:" & Item.Subject
End Sub

代码截图

Part 3:部分代码解读

  1. 若要实现本文中所实现的功能,肯定是要用到事件。Outlook中的ThisOutlookSession有点像Excel中的ThisWorkbook工作簿事件

    • 双击ThisOutlookSession,默认情况下,只有一个Application,支持的事件如下图所示
    • 的确有一个Application_NewMail事件,当收到新邮件时会触发该事件。但遗憾的是,不能够直接定位最新收到的邮件
    • 所以我们需要一个新事件

ThisOutlookSession

ThisOutlookSession支持的事件如下图

  1. Private WithEvents Items As Outlook.Items,通过WithEvents我们可以定义新事件,定义后新增了一个支持事件的对象Items,对应的事件有3个:

    • Items_ItemAdd
    • Items_ItemChange
    • Items_ItemAdd

新增Items对象

新增3个事件

3. Application_Startupoutlook启动事件,上文实现了支持事件的对象定义,在这个Application_Startup事件中将其初始化,定义为收件箱里的邮件对象。首次使用需要重启Outlook软件使其生效
4. Items_ItemAdd(ByVal Item As Object),新收到一个邮件时触发该事件

Ps:也是第1次使用WithEvents,挺有意思


  • 更多学习交流,可加小编微信号learningBin

更多精彩,请关注微信公众号
扫描二维码,关注本公众号

Outlook-VBA-04-收件箱自动处理相关推荐

  1. 2g限制 outlook_【排障】Outlook Express 2G收件箱大小限制

    Outlook Express 2G收件箱大小限制 文:铁乐猫 ----------------------------- Outlook Express(以下简称OE)客户端收件箱大于或接近2G时, ...

  2. 如何在outlook里面把收件箱分组,以便快速的查看最重要的email。

    公司越大,cc过来的邮件就越多,有些cc邮件太多了,导致可能会忽略掉在cc邮件之间的那些需要自己快速处理的重要事件.因此需要做邮件分组,把单独发给自己的列成一个文件夹.定时察看这个制定的文件夹来处理自 ...

  3. 如何在outlook里面把收件箱分组,以便快速的查看最重要的email

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 公司越大 ...

  4. 解决Outlook分组后收件箱无收件提示的方法

    问题: Outlook2016PC版客户端,收件箱在分成多个小组并设置相应的规则后,发现收到邮件后Outlook无提示,未读邮件也未新增,必须点开分组才能看到有新邮件,对工作效率产生了影响. 解决方法 ...

  5. 已解决-Outlook 收件箱全部标记为已读,但还是有未读数字提示

    问题: Outlook收件箱里面的邮件都通过右键-全部标为已读了,但是Outlook中的收件箱还是有数字提示未读邮件. 原因: 在服务器上仍然有未读邮件,没有下载到本地 解决方法: 1.登录网页版的O ...

  6. outlook exprss 的收件夹超过2G 代码0x800c0133

    当outlook exprss 的收件夹超过2G,要收件的时候,会提示 "发生原因不明的错误..............错误代码 0x800c0133 解决方法: 第一种: 要经常的清理删除 ...

  7. VBA宏:outlook收件箱中发件人使用联系人

    VBA宏:outlook收件箱中发件人使用联系人 前言 使用方法 详细代码 函数1 函数2 总结 前言 outlook有个特别不符合国人习惯的小问题:即使发件人已经添加到了联系人地址簿中,在收件箱中查 ...

  8. outlook收件箱显示_Outlook中的垃圾电子邮件,混乱邮件和重点收件箱有什么区别?

    outlook收件箱显示 If you use a recent version of Outlook, you've probably noticed a Junk Email folder, a ...

  9. 根据Outlook收件箱的邮件提取发件人邮箱地址到excel后再导入到Outlook联系人

    根据Outlook收件箱的邮件提取发件人邮箱地址到excel后再导入到Outlook联系人步骤如下: 1,新建工作簿book1,第一张表取名"邮件地址提取",并保存 2,ALT+f ...

  10. Outlook收件箱总显示有未读邮件问题

    Outlook版本为2013,有时候收件箱里面的邮件都已经标记为已读了,可是文件夹还是提示存在未读邮件. 搜索后发现是在服务器上仍然有未读邮件造成,解决方法: 右键对应文件夹->属性->清 ...

最新文章

  1. 制备pdms膜的方法_专利:一种热致变色纳米纤维膜及其制备方法
  2. 【Alpha】事后分析
  3. 开发中遇到的java小知识
  4. pandas重采样时指定对不同列的不同操作
  5. 新格尔软件测试大师,新格尔神雕软件
  6. ssl证书的生成与签名
  7. 解决 elementUI 切换table后 el_table 固定列下方多了一条线
  8. 2014年武汉的IT行情好像不太好(续):20个月过后,再看当时面试过的几个公司--武汉财富基石-崩盘,辣妈萌宝-创业失败,朋友公司转交他人管理...
  9. ubuntu网络设置找不到有线连接_win7系统找不到网络打印机如何解决?局域网打印机共享怎么设置?...
  10. 好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效按钮
  11. RGB 与 RGBA 与 16进制 与 HSL 之间的简单转换
  12. R语言非参数检验(一)
  13. php 相加函数,求和函数是什么
  14. Java多线程系列--“JUC线程池”03之 线程池原理(二)
  15. 大数据仓库之拉链表讲解与举例说明【基础部分】
  16. php slik转wav_silk转mp3(小程序音频silk转普通mp3接口)
  17. 【信奥赛一本通】1253:抓住那头牛(详细代码)
  18. 天猫魔盒改无线打印服务器,图文教学天猫魔盒如何设置WIFI的过程
  19. uniapp 调用阿里云OCR行驶证识别
  20. 【论文写作】学术英语写作辅助工具推荐:Academic Phrasebank

热门文章

  1. Linux命令+shell脚本大全:处理目录
  2. Linux Hook技术实践
  3. 国际NFT交易所排行榜前10名
  4. 魔兽地图服务器修改,魔兽地图的修改怎样用魔兽地图修改编辑器修改和编辑地图,那里有 爱问知识人...
  5. html页面长截图或生成pdf
  6. IOS上架APP网络ipv4转ipv6
  7. 【读书笔记】描述个人优势的34个主题--《现在,发现你的优势》
  8. java 留言板源码,JSP留言板的JSP源码操作实施
  9. 微信小程序页面事件 - 下拉刷新与上拉触底
  10. 图解MIT-BIH数据库心电数据下载和Matlab读取程序