powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
14 сообщений из 14, страница 1 из 1
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38656702
prologos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть готовый рабочий код позволяющий в почте сохранять вложения поступающие в мой ящик.
Я хочу вложения сохранять и удалять их из тела письма, но по всей видимости такого метода myeitems(i).Delete не существует.
Может кто то из Вас, друзья, знает решение этой проблемы?


Код: 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()
On Error Resume Next
Dim myolApp As Outlook.Application
Dim myItem As Outlook.MailItem
Set myolApp = CreateObject("Outlook.Application")
Set myNamespace = myolApp.GetNamespace("MAPI")
Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)
last_count = myFolder.Items.Count
Set myItem = myFolder.Items(last_count)
Set myeitems = myItem.Attachments
'  myFolder.Items.Sort "ReceivedTime", false
For i = 0 To myeitems.Count
 ' If myeitems.Count > 0 Then
 ' If (Right(myeitems(i).DisplayName, 3) = "xls") And (myFolder.Items(i).UnRead = True) Then  Then
  myeitems(i).SaveAsFile "C:\Temp\" & myeitems(i).DisplayName
 ' End If
 ' End If
Next i
myeitem.Delete
For i = 0 To myeitems.Count
  myeitems(i).Delete
Next i
End Sub
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38656752
prologos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
prologosЕсть готовый рабочий код позволяющий в почте сохранять вложения поступающие в мой ящик.
Я хочу вложения сохранять и удалять их из тела письма, но по всей видимости такого метода myeitems(i).Delete не существует.
Может кто то из Вас, друзья, знает решение этой проблемы?


Код: vbnet
1.
2.
3.
For i = 0 To myeitems.Count
  myeitems(i).Delete
Next i




MailItem.Attachments.Remove(i) и это тоже не помогает.
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38656966
prologos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Один мой товарищ предложил использовать такую конструкцию...
однако это не вложения, а письма переносятся в другую папку. Все же интересен вариант с удалением/перемещением вложений.


Код: 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.
30.
Sub Perekrest_Attach_Proc01()
'папки "Perekrest_Raw" и "Perekrest_Processed" должны уже быть созданы в папке "Входящие"!!!
'
R = MsgBox("Хотите обработать  письма  от Перекресток?", vbYesNo, "обработка сообщений")
If R = vbNo Then Exit Sub 
Dim myApp As  Outlook .Application 
Dim myFolder As  Outlook .MAPIFolder 
Dim myItem As Object 
Set myOlApp = CreateObject(" Outlook .Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI") 
Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("Perekrest_Raw")' исходные сообщения, которые обрабатываются 
Set otherFolder = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("Perekrest_Processed")' обработанные сообщения 
DestFolder = "C:\Perekrest_Attach\" ' эта папка тоже уже должна существовать!!!
'Выцепляем аттачи  из   писем  в исходной папке, сохраняем их в папку на ЖД 
If myFolder.Items.Count > 0 Then
	For i = 1 To myFolder.Items.Count
		If myFolder.Items(i).Attachments.Count > 0 Then
		For j = 1 To myFolder.Items(i).Attachments.Count
		myFolder.Items(i).Attachments.Item(j).SaveAsFile DestFolder & myFolder.Items(i).Attachments.Item(j).DisplayName
		Next j
		End If
	Next i
	
	'Переносим обработанные письма в папку для обработанных сообщений - чтобы больше не мешались 
	For Each myItem In myFolder.Items
	myItem.Move otherFolder
	Next
End If
	MsgBox "Обработка завершена!"
End Sub
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38661982
prologos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здесь похоже на VBA из знатоков никого нет. (((
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38662011
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prologosЗдесь похоже на VBA из знатоков никого нет. (((это типа подначка такая на слабо?

здесь просто мало знатоков объектной модели оутлука. Я вот, например, тупо не знаю, как подобраться в объектной модели оутлука к конкретному письму в моем оутлуке. Запись макроса я там тоже не нашел. Изучать же объектную модель мне пока недосуг.

предлагаю в первоначальном коде убрать On Error и попытаться выполнить.
в частности, мне совершенно непонятно, что там делает строка
Код: vbnet
1.
myeitem.Delete
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38662029
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProИзучать же объектную модель мне пока недосуг.впрочем, немножко разобрался, смог получить в переменную в письмо и удалил из него аттачмент с помощью Delete


prologosпо всей видимости такого метода myeitems(i).Delete не существует.Вангую, что ошибка в том, что ты пытаешься удалить несуществующий нулевой элемент коллекции.

Избавься от зла в виде On Error и будет тебе щастье
и форум с отсутствующими знатоками VBA не понадобится
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38662130
prologos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, да эта строка лишняя надо было move использовать если бы я хотел удалять письмо целиком. Спасибо за ответ, сейчас попробую в общем проверять нулевой ли элемент.
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38662134
prologos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче, я от error избавился и написал код который нормально выполняется, однако аттачменты не удаляет

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Application_NewMail()
Dim myolApp As Outlook.Application
Dim myItem As Outlook.MailItem
Set myolApp = CreateObject("Outlook.Application")
Set myNamespace = myolApp.GetNamespace("MAPI")
Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)
Dim last_count As Integer
last_count = myFolder.Items.Count
Set myItem = myFolder.Items(last_count)
Set myeitems = myItem.Attachments
For i = 1 To myeitems.Count
  myeitems(i).SaveAsFile "C:\Temp\" & myeitems(i).DisplayName
Next i
For i = 1 To myeitems.Count
  myItem.Attachments.Remove (i)    ' не работает
  myeitems(i).Delete                       ' не работает
Next i
End Sub
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38662192
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"не работает" - это что значит? ошибку выдает или просто результата нет?
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38662196
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, удалять в таком цикле тоже неправильно, допустим если изначально было 5 аттачментов, то к моменту удаления пятого в коллекции уже нет элемента с индексом 5, так как их стало меньше. Надо каждый раз либо удалять первый элемент, либо удалят от конца к началу
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38663028
prologos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, а пример можно?
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38663047
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример чего? цикла?
Код: vbnet
1.
For i = myeitems.Count To 1 Step -1
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38664534
prologos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, нет - с циклами все понятно, вопрос только в том, почему аттачменты не удаляются
...
Рейтинг: 0 / 0
VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
    #38664536
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не знаю, приведите окончательный вариант вашего кода
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Outlook - сохранение вложений нового письма. Не работает удаление вложений.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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