设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3007|回复: 2
打印 上一主题 下一主题

[与其它组件] 还是关于VBA收取邮件的。。。。。

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2016-7-17 10:49:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我自己在网络上DOWN了一段自动收取邮件的VBA代码,原本是在access上的,我改到excel上就开始报错了。
哪个大神帮忙看看,网络上关于outlook对象的教程信息太少了。。。。只能臭不要脸的做一次伸手党了。。。。。

大神们帮忙把邮件正文处理到单元格里或者变量里,从正文筛选内容的工作我自己来

这个主要是把所有未读邮件的正文都放到excel单元格里,方便做后期处理和筛选。
能不能加一个时间节点,就是可以设定只收取那个时间段的。

  1. Sub inputEmail()
  2. Dim myolApp As New Outlook.Application          '创建Outlook应用程序对象
  3. Dim myNamespace As Outlook.Namespace
  4. Dim myFolder As Outlook.MAPIFolder
  5. Dim myattachments As Outlook.Attachments
  6. Dim i As Integer
  7.     Set myNamespace = myolApp.GetNamespace("MAPI")              '获取MAPI命名空间
  8.     Set myFolder = myNamespace.GetDefaultFolder(FolderType)  '获取默认文件夹为收件箱
  9.     For i = 1 To myFolder.Items.Count
  10.         With myFolder.Items(i)
  11.             If EmailEntryID = .EntryID Then
  12.                 Sheets("sheet1").Cells(i, 1) = .EntryID
  13.                 Sheets("sheet1").Cells(i, 2) = .UnRead   '未读标志
  14.                 Sheets("sheet1").Cells(i, 3) = .SenderName   '发件人姓名
  15.                 Sheets("sheet1").Cells(i, 4) = .SenderEmailAddress    '发件人电子邮件地址
  16.                 Sheets("sheet1").Cells(i, 5) = .CC  '抄送
  17.                 Sheets("sheet1").Cells(i, 6) = .BCC     '秘密抄送
  18.                 Sheets("sheet1").Cells(i, 7) = .Subject    '主题
  19.                 Sheets("sheet1").Cells(i, 8) = .LastModificationTime   '发送日期和时间
  20.                 Sheets("sheet1").Cells(i, 9) = .Body       '正文
  21.                 Sheets("sheet1").Cells(i, 10) = .HTMLBody    '正文
  22.                 Sheets("sheet1").Cells(i, 11) = .Size     '大小
  23.                 Sheets("sheet1").Cells(i, 12) = .Importance    '重要性
  24.                 Sheets("sheet1").Cells(i, 13) = IIf(.Attachments.Count > 0, True, False)
  25.             End If
  26.         End With
  27.      Next

  28.     Set myolApp = Nothing
  29.     Set myNamespace = Nothing
  30.    Set myFolder = Nothing
  31.    
  32. GetOutlookEmail_Exit:
  33.     Exit Sub
  34.    
  35. GetOutlookEmail_Err:
  36.    Set myolApp = Nothing
  37.    Set myNamespace = Nothing
  38.    Set myFolder = Nothing
  39.     MsgBox Err.Description, vbCritical, "提示"
  40. End Sub
复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2016-7-17 21:19:38 | 只看该作者
我好久没碰outlook了。
印象中应该是  inbox.Items.Restrict(Filter)
filter 可以是类似 [ReceivedTime] >= 一个日期

点击这里给我发消息

3#
 楼主| 发表于 2016-7-19 12:52:44 | 只看该作者
tmtony 发表于 2016-7-17 21:19
我好久没碰outlook了。
印象中应该是  inbox.Items.Restrict(Filter)
filter 可以是类似 [ReceivedTime]  ...

恩 ,我试下,谢谢王战
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-26 13:13 , Processed in 0.098488 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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