首页 > 编程语言 > 详细

Excel VBA发送Email时自动允许Outlook安全对话框

时间:2019-12-07 17:05:21      阅读:126      评论:0      收藏:0      [点我收藏+]

在Outlook的宏安全性设置如果选择了“为所有宏提供通知”

技术分享图片

 

 

并且,在【编程访问】中选择了“总是向我发出警告”

技术分享图片

 

在其他VBA中创建邮件过程中,如果修改Recipients或者执行Send方法,都会弹出一个允许和拒绝的对话框。

技术分享图片

 

 

 本帖中包含一个工具,可以自动点击最左侧的【允许】按钮,从而保证程序的连续执行。下载地址: AllowOutlookSecurityDialog.rar

下载后解压缩,其中的exe文件不要双击,放在那儿就行。

然后打开“发邮件.xlsm”,可以看到如下VBA代码: 

Sub Test()
    Dim OutlookApp As outlook.Application
    Set OutlookApp = GetObject(, "outlook.Application")
    Dim mail As outlook.MailItem
    预先启动AllowOutlookSecurityDialog.exe,60表示总共监视60秒。
    Shell "E:\AllowOutlookSecurityDialog\AllowOutlookSecurityDialog.exe " & "Button 允许 60", vbHide
    For i = 1 To 2
        Set mail = OutlookApp.CreateItem(0)
        With mail
            .Recipients.Add "32669315@qq.com"
            .Subject = Time & " - Mail" & i
            .Send
        End With
    Next i
End Sub

需要注意的是这行代码一定要写在创建邮件之前,因为它是异步调用的,所以在阻塞之前必须启动exe文件。

Shell "E:\AllowOutlookSecurityDialog\AllowOutlookSecurityDialog.exe " & "Button 允许 60", vbHide

其中,"E:\AllowOutlookSecurityDialog\AllowOutlookSecurityDialog.exe "是那个exe文件的具体路径,根据你解压的路径进行调整,注意双引号左侧需要保证一个空格。

另外,"Button 允许 60"里面的允许可以改成Allow(如果你是英文版Outlook),最后的60表示本工具从执行起的监视时间,意思是在60秒内凡是遇到弹出对话框,就自动点击,而不论你创建了多少封邮件。

最后送一个动态图:

技术分享图片

 

Excel VBA发送Email时自动允许Outlook安全对话框

原文:https://www.cnblogs.com/ryueifu-VBA/p/12002055.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!