Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Скрипт VBA для Outlook срабатывает лишь раз

63K
10 сентября 2010 года
DarkHost
1 / / 10.09.2010
Пытаюсь написать скрипт для Outlook вида:
Код:
Sub TrashingMail()

Set myOlApp = CreateObject("Outlook.Application")
Dim myNameSpace As NameSpace
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Dim myExplorer As Explorer
Set myExplorer = myOlApp.ActiveExplorer

folderType = myExplorer.CurrentFolder.DefaultItemType

If TypeName(myExplorer) = "Nothing" Or folderType <> 0 Then
GoTo invalidMailbox
End If

Set thisFolder = myExplorer.CurrentFolder
Do Until thisFolder.Parent = myNameSpace
    Set thisFolder = thisFolder.Parent
Loop
Set accountFolder = thisFolder

Dim selectedItems As Selection
Set selectedItems = myExplorer.Selection
Dim currentMailItem As MailItem
Dim iterator As Long

For iterator = 1 To selectedItems.Count
Set currentMailItem = selectedItems.Item(iterator)

Set thisFolder = myExplorer.CurrentFolder
Set trashFolder = accountFolder.Folders("Удаленные")
currentMailItem.Move (trashFolder)

Next

Dim myBar As CommandBar
Set myBar = Application.ActiveExplorer.CommandBars("Menu Bar")
Dim myButtonPopup As CommandBarPopup
Set myButtonPopup = myBar.Controls("&Правка")
Dim myButtonPopupP As CommandBarPopup
Set myButtonPopupP = myButtonPopup.Controls("О&чистить")
Dim myButton As CommandBarButton
Set myButton = myButtonPopupP.Controls("Очистить помеченные &элементы для всех учетных записей")
SendKeys "~"
myButton.Execute

Exit Sub

invalidMailbox:
MsgBox ("Это не почтовая папка!")
Exit Sub

End Sub

Скрипт должен перемещать удаляемые письма в папку "Удаленные". Мало того, скрипт работает. Если удалить макросом письмо или группу писем, а потом в течение минуты-двух еще раз запустить макрос, то выдает: "Сбой операции.Невозможно найти объект" и указывает на строку:
 
Код:
currentMailItem.Move (trashFolder)

Если применить макрос, подождать минуты две, а потом снова применить макрос, то работает как часы. То есть проблема чисто в том, что запускать макрос нужно не чаще раза в две минуты.:confused:
Пытался следить за переменными, вроде все нормально, правильные данные в них храняться. Я не знаю VB, так что нужна помощь.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог