ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

OutLook 2010 怎么用VBA实现:当你写完一封邮件,点击发送时,判断有没有附件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-8-17 13:11 | 显示全部楼层 |阅读模式
OutLook 2010 怎么用VBA实现:当你写完一封邮件,点击发送时,判断有没有附件

如果已经有附件了,则直接发送出去;如果没有附件,则弹出一个对话框,询问是否忘记粘贴附件了,点击是,返回继续写邮件,点击否,则发送出去。

我用了有没有人经常忘加附件?(VBA提醒)这篇文章里的代码,没有任何效果,跟直接发送邮件一样。

我写了一段代码,但是无法判断有没有附件,不论粘贴没粘贴附件,总是提醒,

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim myOlApp As New Outlook.Application
    Dim myItem As Outlook.MailItem
    Dim myAttachments As Outlook.Attachments
    Dim cancelsend As Long
    Set myItem = myOlApp.CreateItem(olMailItem)
    Set myAttachments = myItem.Attachments
    If myItem.Attachments.Count = 0 Then
    cancelsend = MsgBox("  是否忘记粘贴附件了 " & vbNewLine & vbNewLine & "      确定要发送吗?", _
    vbYesNo + vbDefaultButton2 + vbQuestion, "忘记粘贴附件提示")
    If cancelsend = vbNo Then Cancel = True
    End If
End Sub

现在的问题是,If myItem.Attachments.Count = 0 Then 这条语句里的值始终为0,不管粘贴多少附件,还是0,怎么办?谢谢回答!

TA的精华主题

TA的得分主题

发表于 2011-8-17 13:29 | 显示全部楼层
调试下看myItem的值。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-17 13:35 | 显示全部楼层
感谢版主回答,我现在的问题是,为什么别人用
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
开头之后,
下面就可以用Item.Attachment.Count了,
但是我就不行,
我打完Item.之后,不会弹出选择属性的下拉列表。
说明Item变量不可用,
所以本论坛上的好多代码,我都无法使用,
请版主指点。
我的操作系统是Win7 + OutLook 2010
谢谢!

TA的精华主题

TA的得分主题

发表于 2011-8-17 13:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我没2010,你会用对象浏览器吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-17 14:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不会啊,对象浏览器,怎么用啊?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-17 14:14 | 显示全部楼层
我还有个操作系统,是WinXP + OutLook 2007
就是我在ThisOutlookSession里写上
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
之后,再写If Item.Attachments.Count = 0 Then
Item.写完了,没有出现属性列表,就是说Item这个变量不管用,怎么回事儿啊,为什么别人的代码都管用呢。
用的就是http://club.excelhome.net/thread-138626-1-1.html里的代码,怎么都不起作用。

TA的精华主题

TA的得分主题

发表于 2011-8-17 14:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
代码没问题。
我只有2003。
在工具栏里找对象浏览器。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-17 14:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
找到了,按F2可以打开对象浏览器,但是它只不过显示了所有的对象,然后怎么用呢?

TA的精华主题

TA的得分主题

发表于 2011-8-17 14:52 | 显示全部楼层
搜mailitem,看看有什么属性。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-17 15:06 | 显示全部楼层
Actions
AlternateRecipientAllowed
Applicaion
Attachments
AutoForwarded
AutoResolvedWinner
BCC
BillingInformation
Body
BodyFormat
Categories
CC
Class
Companies
Conflicts
ConversationIndex
ConversationTopic
CreationTime
DeferredDeliveryTime
DeleteAfterSubmit
DownloadState
EntryID
ExpiryTime
FlagRequest
FormDescription
GetInspector
HTMLBody
Importance
InternetCodepage
IsConflict
IsMarkedAsTask
ItemProperties
LastModificationTime
Links
MarkForDownload
MessageClass
Mileage
NoAging
OriginatorDeliveryReportRequested
OutlookInternalVersion
OutlookVersion
Parent
Permission
PermissionService
PropertyAccessor
ReadReceiptRequested
ReceivedByEntryID
ReceivedByName
ReceivedOnBehalfOfEntryID
ReceivedOnBehalfOfName
ReceivedTime
RecipientReassignmentProhibited
Recipients
ReminderOverrideDefault
ReminderPlaySound
ReminderSet
ReminderSoundFile
ReminderTime
RemoteStatus
ReplyRecipientNames
ReplyRecipients
Saved
SaveSentMessageFolder
SenderEmailAddress
SenderEmailType
SenderName
SendUsingAccount
Sensitivity
Sent
SentOn
SentOnBehalfOfName
Session
Size
Subject
Submitted
TaskCompletedDate
TaskDueDate
TaskStartDate
TaskSubject
To
ToDoTaskOrdinal
UnRead
UserProperties
VotingOptions
VotingResponse

有上面这些属性,好多啊……
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-21 18:33 , Processed in 0.042581 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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