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

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

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

код свой хотя бы приведите. После удаления вложений сохраняете письмо или нет? Если нет - то поведение Outlook вполне логично в этом случае.
...
Рейтинг: 0 / 0
Outlook VBA
    #39914489
Pantik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Outlook VBA
    #39914506
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пальцем в небо:

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

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

Код: 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
Outlook VBA
    #39914544
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Outlook VBA
    #39914978
Pantik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

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


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