ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: neanderthal

[求助] Outlook 收件人列表特出显示

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-8-19 16:39 | 显示全部楼层
本帖最后由 leucine 于 2011-8-19 16:41 编辑

简单写了一下vba,进入outlook后,按alt+f11,在ThisOutlookSession里面粘帖以下代码,记得把宏安全性调成低。

功能:收件箱里收到邮件后,自动分析收件人(包括抄送的),找到第一个包含"@mycompany.com"的收件人,比如staff@mycompany.com。然后在收件箱里建一个以“staff@mycompany.com”命名的文件夹,把邮件移进去。

直接突出显示第一个收件人好像不太好办,只能通过这种方法来达到目的了

outlook2010稍作测试成功。
  1. Private Function newFolder(ByVal folderName As String) As Outlook.Folder
  2.     Dim myNameSpace As Outlook.NameSpace
  3.     Dim myFolder As Outlook.Folder
  4.    
  5.     Set myNameSpace = Application.GetNamespace("MAPI")
  6.     Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
  7.     On Error Resume Next
  8.     Set newFolder = myFolder.Folders.Add(folderName)
  9.     Set newFolder = myFolder.Folders.Item(folderName)

  10. End Function


  11. Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
  12.     Dim varEntryIDs As Variant
  13.     Dim myEntryID As Variant
  14.     Dim myItem As MailItem
  15.     Dim varRecpts As Recipients
  16.     Dim myRecpt As Recipient
  17.    
  18.     Dim myAddr As String
  19.     myAddr = ""
  20.    
  21.     Dim myCompanyEmail As String
  22.    
  23.     myCompanyEmail = "@myCompany.com" '设定贵公司邮箱的后缀,通过这个识别哪些邮件是发给贵公司的
  24.    
  25.     varEntryIDs = Split(EntryIDCollection, ",")
  26.     For Each myEntryID In varEntryIDs
  27.         Set myItem = Application.Session.GetItemFromID(myEntryID)
  28.         Set varRecpts = myItem.Recipients
  29.         For Each myRecpt In varRecpts
  30.             If InStr(1, lcase(myRecpt.Address), lcase(myCompanyEmail)) > 0 Then
  31.                 myAddr = myRecpt.Address
  32.                 Exit For
  33.             End If
  34.         Next
  35.         myItem.Move newFolder(myAddr)
  36.     Next

  37. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-22 09:32 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-31 03:41 , Processed in 1.021541 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表