【发布时间】:2014-01-22 19:16:12
【问题描述】:
我一直在寻找有关如何为 Outlook 创建 Visual Basic 脚本的方法,并且大部分建议都来自该网站。不幸的是,它们都不能满足我的确切需求。
脚本原因:
我的一些同事可以访问并打算检查一个共享邮箱,但有时这可能会被忽略。我想创建一个脚本来检查此共享邮箱中的未读电子邮件,并在文件夹包含超过 10 封电子邮件时向特定联系人发送电子邮件。
到目前为止我所尝试的:
Option Explicit
Private Sub Main()
Dim olMAPI As Outlook.NameSpace
Dim Folder As Outlook.MAPIFolder
Const FOLDER_TO_OPEN = "Mailbox - John Doe" 'Modify as appropriate
Set olMAPI = GetObject("", "Outlook.Application") _
.GetNamespa ce("MAPI")
Call PrintFolderNames(olMAPI.Folders(FOLDER_TO_OPEN), "->")
Set olMAPI = Nothing
End Sub
Sub PrintFolderNames(tempfolder As Outlook.MAPIFolder, a$)
Dim i As Integer
If tempfolder.Folders.Count Then
Debug.Print a$ & " " & tempfolder.Name & " ";
Debug.Print tempfolder.UnReadItemCount
For i = 1 To tempfolder.Folders.Count
Call PrintFolderNames(tempfolder.Folders(i), a$ & "->")
Next i
Else
Debug.Print a$ & " " & tempfolder.Name & " ";
Debug.Print tempfolder.UnReadItemCount
End If
End Sub
我曾尝试先创建一个脚本来检查特定文件夹中的未读电子邮件,但这通常会因语法/运行时错误而失败。我试过了:
但这会带来一个编译错误,然后是一个语法错误。
我也试过了:
Const olFolderInbox = 6
Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
objNamespace.Logon "Default Outlook Profile", , False, True
Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox)
Set colItems = objFolder.Items
Wscript.Echo colItems.Count
objOutlook.Quit
【问题讨论】:
-
那么,究竟是什么错误?请不要让我们猜测。
-
它要么返回语法错误,要么返回运行时 424 错误。它通常会突出显示语法错误的 Private Sub Main ()。