2016-06-30 4 views
1

У меня есть несколько коллег, которые удаляют некоторые папки из общего почтового ящика и сводят меня с ума.Предотвращение удаления папок в Outlook 2007/2010 vba

Я попросил их быть более осторожными, но они просто не дают ^% & *. Поэтому я получил vba, чтобы наложить на всех пользователей, чтобы они не удаляли ничего из этого общего почтового ящика, но код не работает.

Любая помощь приветствуется.

Public WithEvents objCritFolder_EIE_E3Imp As Outlook.MAPIFolder 
Public WithEvents objCritFolder_EIE_E3Man As Outlook.MAPIFolder 

Private Sub application_Startup() 
Dim ns As Namespace 
Dim objRootFolder As Outlook.MAPIFolder 

Set ns = Application.GetNamespace("MAPI") 

Set objRootFolder = ns.Folders("MailBox - FOR ALL").Folders("Teams") 
Set objCritFolder_EIE_E3Imp = objRootFolder.Folders("TODAY") 
Set objCritFolder_EIE_E3Man = objRootFolder.Folders("TODAY + 1") 
Set objRootFolder = Nothing 
End Sub 

Private Sub objCritFolder_EIE_E3Imp_BeforeFolderMove(ByVal MoveTo As MAPIFolder, cancel As Boolean) 
Dim strMsg As String 
cancel = True 
strMsg = "You can't move the TODAY folder." 
MsgBox strMsg, vbCritical, "Folder Move Not Allowed" 
End Sub 
Private Sub objCritFolder_EIE_E3Man_BeforeFolderMove(ByVal MoveTo As MAPIFolder, cancel As Boolean) 
Dim strMsg As String 
cancel = True 
strMsg = "You can't move the TODAY + 1 folder." 
MsgBox strMsg, vbCritical, "Folder Move Not Allowed" 
End Sub 

Проблема заключается в:

Public WithEvents objCritFolder_EIE_E3Imp As Outlook.MAPIFolder 
Public WithEvents objCritFolder_EIE_E3Man As Outlook.MAPIFolder 

Это дает мне: "объект не исходные события автоматизации"

+0

«не является источником» - вы не можете этого сделать - объект, который вы пытаетесь добавить к событиям автоматизации, не поддерживает события автоматизации. –

ответ

1

мне удалось воссоздать ошибку. Исправлено, удалив MAPI из MAPIFolder.

Public WithEvents objCritFolder_EIE_E3Imp As Outlook.Folder 
+0

Привет, спасибо за то, что он вроде работает. Проблема в том, что иногда работает, а иногда и не работает. я сделал sub init(), чтобы объявить все папки и поместить вызов init в application_Startup, но он не принимает его. Мне нужно вручную запустить init для работы. – wittman

Смежные вопросы