VBA调用Outlook发送邮件

原创文章,欢迎转载:http://miao.blog/article/vba-send-email-by-outlook

' 调用Outlook发送邮件
Private Sub SendEmail()
    On Error GoTo ErrorHandler
    
    Dim outlook_app As outlook.Application
    Dim outlook_item As outlook.MailItem
    Set outlook_app = New outlook.Application
    Set outlook_item = outlook_app.CreateItem(olMailItem)
    
    With outlook_item
        .To = Range("mail_to").Value                     ' 收件人
        If Range("mail_cc").Value <> "" Then
            .CC = Range("mail_cc").Value                 ' CC
        End If
        .Subject = Range("mail_title").Value             ' 邮件标题
        If Range("mail_file").Value <> "" Then
            .Attachments.Add Range("mail_file").Value    ' 附件
        End If
        .body = Range("mail_content").Value              ' 邮件内容
        .BodyFormat = olFormatPlain                      ' 邮件类型: 文本
        
        ' 自动发信
        If chk_auto_send.Value Then
            .Send
        ' 打开outlook,然后手动点发送
        Else
            .Display
        End If
    End With

    Exit Sub
ErrorHandler:
    MsgBox Err.Description
End Sub
推荐阅读
vba要实现md5必须引用外部库,导致vba程序交付安装不是很方便。很多时候我们并不是想要取真正的md5,只是取一个加密字符串,比如保存密码的时候。本文中的代码直接利用windows系统内置命令certutil -hashfile实现了一种变相的md5函数。代码要读写本地文件两次,因此效率不高,不过在登陆验证一下密码等场景并没有影响。
VBA中进行copy和paste的时候,无规律的出现 “类Worksheet的Paste方法无效”错误 怀疑是电脑太快,copy操作还没有完成,就直接运行paste,导致paste出错。 所以在copy操作后,sleep一小段时间,结果真的解决了问题。
评论
1

1

2019-06-13

111