none
Outlook 2010 怎么判断有没有附件,如果没有附件,提示用户? RRS feed

  • 问题

  • Outlook 2010 怎么用 VBA 实现:当用户写完一封邮件,邮件内容中有附件两个字,当点击发送时,判断有没有附件,如果没有附件,提示用户?
    2012年2月3日 5:31

答案

  • 自己修改了一下代码,解决了这个问题,代码如下:

    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 myContent, attachStr
       
        Dim cancelsend As Long
        Set myItem = Item
       
        attachStr = "附件"
        myContent = Item.Body
       
        Set myAttachments = myItem.Attachments
       
       
        '判断邮件内容中是否有“附件”两个字
       
        If (InStr(1, myContent, attachStr) > 0) Then
       
       
        '如果有“附件”两个字就判断是否有附件
       
        If myItem.Attachments.Count = 0 Then
            cancelsend = MsgBox("  是否忘记粘贴附件了 !" & vbNewLine & vbNewLine & "      确定要发送吗?", _
            vbYesNo + vbDefaultButton2 + vbQuestion, "忘记粘贴附件提示")
            If cancelsend = vbNo Then Cancel = True
        End If
        Else:
            Exit Sub
        End If
    End Sub

    • 已标记为答案 futom 2012年2月6日 1:52
    2012年2月6日 1:52

全部回复

  • 可以参考:http://club.excelhome.net/thread-753927-1-1.html

     

    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



    佛是过来人,人是未来佛。
    2012年2月3日 14:55
    版主
  • 这段代码不起作用,我的系统是 64位 Windows 7,32位 Office 2010。
    2012年2月5日 10:51
  • 自己修改了一下代码,解决了这个问题,代码如下:

    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 myContent, attachStr
       
        Dim cancelsend As Long
        Set myItem = Item
       
        attachStr = "附件"
        myContent = Item.Body
       
        Set myAttachments = myItem.Attachments
       
       
        '判断邮件内容中是否有“附件”两个字
       
        If (InStr(1, myContent, attachStr) > 0) Then
       
       
        '如果有“附件”两个字就判断是否有附件
       
        If myItem.Attachments.Count = 0 Then
            cancelsend = MsgBox("  是否忘记粘贴附件了 !" & vbNewLine & vbNewLine & "      确定要发送吗?", _
            vbYesNo + vbDefaultButton2 + vbQuestion, "忘记粘贴附件提示")
            If cancelsend = vbNo Then Cancel = True
        End If
        Else:
            Exit Sub
        End If
    End Sub

    • 已标记为答案 futom 2012年2月6日 1:52
    2012年2月6日 1:52