在vba中批量发送Outlook草稿

时间:2016-03-14 09:01:02

标签: vba outlook outlook-vba

VBA很新,刚开始学习!对vba宏的可能性感兴趣,并想知道是否可以在ms outlook中的草稿框中批量发送大约100封电子邮件?

Haven没有尝试任何有意义的事情,所以我只是寻找起点,所以我可以自己开发它!还想着从盒子提示开始,

所以我有这个代码

   Sub bulksend()

   If MsgBox("send all drafts?", vbquestion + vbyesno) <> vbyes then exit sub

   End sub

对此有任何帮助,但也非常感谢我如何学习更多vba :)

1 个答案:

答案 0 :(得分:1)

欢迎来到VBA,我也很新,但在过去的几个月里学到了很多东西。我发现只是陷入困境并使用SO这样的互联网资源对我来说是最好的,但是如果你想学习那样的话,那里可能还有很多好书!

信不信由我在大约一个月前与你处于相同的情况时实际上已经覆盖了这个:)这段代码可以工作,但我鼓励你逐步完成它以真正理解它的作用是什么呢?学习新代码的最佳方式。不确定你是否了解outlook vba,但是通过outlook(ALT + F11)使用这个开放的vba。在项目框左上方打开project1,然后单击Microsoft Outlook Objects和ThisOutlookSession,粘贴代码并按F5。要逐步浏览每一行,请按F8。让我知道它是怎么回事并祝你好运:)

Private Declare Sub Sleep Lib "kernel32" (ByVal nMilliseconds As Long)

Sub SendAllDrafts()

If MsgBox("Send all drafts??", _
    vbQuestion + vbYesNo) <> vbYes Then Exit Sub
Dim fldDraft As MAPIFolder, msg As Outlook.MailItem, intCount As Integer
Set fldDraft = Outlook.GetNamespace("MAPI").GetDefaultFolder(olFolderDrafts)
intCount = 0
Do While fldDraft.Items.Count > 0
    Set msg = fldDraft.Items(1)
    msg.Send
    Sleep 1000
    intCount = intCount + 1
Loop
If Not (msg Is Nothing) Then Set msg = Nothing
Set fldDraft = Nothing
MsgBox intCount & " messages sent - that was easy :)", vbInformation + vbOKOnly
End Sub