Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Outlook VBA / 8 сообщений из 8, страница 1 из 1
15.01.2020, 14:41
    #39914353
Pantik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook VBA
Форумчане, подскажите. Не нашел ничего по своей теме.

Пишу макрос для Outlook который по событию "NewMail" удаляет из пришедшего письма вложения определенного типа путем перебора всех вложений в письме.

Проблема в том, что вложение удаляется только если письмо выделено в списке мышкой (находится в фокусе), в противном случае он находит вложение, но не удаляет его. Как программно выделить письмо (установить на него фокус)?
...
Рейтинг: 0 / 0
15.01.2020, 17:42
    #39914479
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook VBA
Pantik,

код свой хотя бы приведите. После удаления вложений сохраняете письмо или нет? Если нет - то поведение Outlook вполне логично в этом случае.
...
Рейтинг: 0 / 0
15.01.2020, 17:51
    #39914489
Pantik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook VBA
The_Prist,

Нет, письмо не удаляю, только определенные вложения (по шаблону).

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub Application_NewMail()

Dim myFolder As Outlook.MAPIFolder

Dim newit As Object

Set myFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

Set LastItem = myFolder.Items.GetLast

Set newAttach = LastItem.Attachments

For Each newat In newAttach

    If newat.DisplayName Like "ATT000*.htm" Then
        
        newat.Delete
    
    End If
    
Next newat

End Sub
...
Рейтинг: 0 / 0
15.01.2020, 18:17
    #39914506
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook VBA
Пальцем в небо:

lastItem.Display
...
Рейтинг: 0 / 0
15.01.2020, 18:22
    #39914508
Pantik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook VBA
Leonid Kudryavtsev,

Почти попали. Мелькает конечно открывающееся письмо, но лучше чем ничего.
Единственный косяк, письмо становится прочитанным.
Как вариант, спасибо.
...
Рейтинг: 0 / 0
15.01.2020, 18:41
    #39914519
Pantik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook VBA
Сделал так.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Private Sub Application_NewMail()

Dim myFolder As Outlook.MAPIFolder

Dim newit As Object

Set myFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

Set LastItem = myFolder.Items.GetLast

LastItem.Display

Set newAttach = LastItem.Attachments

For Each newat In newAttach

    If newat.DisplayName Like "ATT000*.htm" Then
        
        newat.Delete
    
    End If
    
Next newat

LastItem.Close olSave

LastItem.UnRead = true

End Sub
...
Рейтинг: 0 / 0
15.01.2020, 19:48
    #39914544
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook VBA
Pantik
исьмо не удаляю
а я писал, что удаляете письмо? :) Я про вложение писал. А письмо надо сохранять после изменения(а удаление вложения это таки изменение). Попробуйте:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Set newAttach = LastItem.Attachments
For Each newat In newAttach
    If newat.DisplayName Like "ATT000*.htm" Then
        newat.Delete
        LastItem.Save
    End If
Next newat
...
Рейтинг: 0 / 0
16.01.2020, 18:41
    #39914978
Pantik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook VBA
The_Prist,

Не правильно прочитал. Да, ваш способ тоже работает. Спасибо.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Outlook VBA / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]