Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/88: Рейтинг темы: голосов - 88, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 29

Макрос Outlook для прочтения и сохранения писем

02.07.2013, 13:37. Показов 18110. Ответов 54
Метки нет (Все метки)

Помогите пожалуйста!

У меня в Outlook был макрос, который прочитывал все письма входящие и сохранял их в определенную папку. Потом произошел какой то сбой и макрос слетел. Мне написали новый, но он не работает до конца, т.е. приходит письмо, он его ни читает, ни сохраняет, когда приходит следующее письмо, то он первое обрабатывает, а на втором опять же тормозит, т.е. получается, что он через один работает. Местные программист борются с этим, но толку ноль, я сама не программер, но просто мне самой это очень надо, может мне кто нить поможет(((
Вот сам макрос:

Visual Basic
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
31
32
Sub SaveAattachments(myItem As Outlook.MailItem)
 
'Sub SaveAattachments()
 
Dim oNameSpace As NameSpace
Dim oFolder As MAPIFolder
'Dim MI As MailItem
Dim MI
Dim DestFolder As String
Dim i As Integer
 
    Set oNameSpace = ThisOutlookSession.Session
    Set oFolder = oNameSpace.GetDefaultFolder(olFolderInbox)
    
    If Len(Dir("L:\Карты\CardPL\Files\In\")) = 0 Then
 
        DestFolder = "C:\Card_In\"
    Else
        DestFolder = "L:\Карты\CardPL\Files\In\"
    End If
        
    For Each MI In oFolder.Items
        If MI.UnRead = True Then
        If MI.Attachments.Count > 0 Then
            For i = 1 To MI.Attachments.Count
                MI.Attachments.Item(i).SaveAsFile DestFolder & MI.Attachments.Item(i).DisplayName
            Next
        End If
        MI.UnRead = False
        End If
    Next
End Sub

Единственное, что меня в нем смущает DestFolder = "C:\Card_In" ...я опять же говорю, что я не специалист, но на диске С у меня нет папки Card_In, может это как то связано....
Очень надеюсь на помощь!!!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.07.2013, 13:37
Ответы с готовыми решениями:

Простой скрипт для сохранения писем Outlook
Здравствуйте. Прочитал все подобные темы на форуме и ничего не нашел. Нужен самый простой скрипт, который берет письма из определенной...

Макрос для отправки писем через outlook
Необходимо создать макрос для отправки писем через outlook листа 3, с ориентацией по названию фирмы и емэйлом

Макрос для Outlook: автоматическая проверка всех входящих писем
Друзья, простите что обращаюсь, но уже давно пытаюсь и никак не могу написать макрос для outlook. Нужно чтобы он проверял автоматически все...

54
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
05.07.2013, 11:22
Без паники! Закройте все без сохранения!
Вот это окошко и привязано только на Ваш старый макрос. Он все новое, ретроград чертовый, игнорирует. Для новый макросов назначьте комбинацию клавиш (F8, в этом окне выбрали нужный макрос, и там же, кнопка, кажется - править, назначаете клавиши)
0
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 29
05.07.2013, 11:26  [ТС]
так, давайте по порядку, я просто сейчас пока снесла эту программу.... если вам не сложно, опишите пошаго как все сделать, я понимаю, что уже достала, просто чтобы быть уверенной, что не я тут что то касячу(((((
Вот сейчас у меня все под старый макрос, как мне все по новому сделать?
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
05.07.2013, 11:35
Почему Вы думаете, что снесли? Закройте и откройте Outlook без сохранения.
0
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 29
05.07.2013, 11:38  [ТС]
я удалила эту программу из Outlook, и теперь у меня чисто только старый макрос, когда заходу в vba у меня там числиться только мой старый и все)
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
05.07.2013, 11:50
Ничего не понимаю. Что именно Вы удалили? Показывание окошка, какой-то листинг, модуль....?
Ну а пока смотрите здесь, как создать комбинацию клавиш для макроса в Outlook
http://blogs.msdn.com/b/richar... rtcut.aspx
Или на панели создайте какую-то кнопку и назначьте ей нужный макрос.
0
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 29
05.07.2013, 12:00  [ТС]
модуль сам удалила....
и получается, что вот эта программа будет работать, только когда я нажму эту комбинацию?

Добавлено через 6 минут
блин бед...я попыталась сделать комбинацию, но у меня когда я открываю, как там показано другие команды - макросы то у меня там пусто, там на картинке несколько видов ,а у меня ничего нет!!!!!!!!!!!!!!!!!!!!
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
05.07.2013, 12:27
Да не "эта" программа, а тот макрос, которому Вы эту комбинацию укажете. Давайте так. То, что Вы скачали последнее по моей ссылке (импортировали *.bas). Если его уже нет - опять импорт в редактор VBA. Потом выделяете мышью! (удерживая каким-то пальцем другой руки клавишу Ctrl) те сообщения, которые Вам нужно проверитьНаВложения/сохранитьВложения. Отпускаяте все. Мышь тоже! Нажимаете комбинацию клавишь Alt + F8. Появится окно, в котором выберете ExecuteSaving. Нажимаете выполнить. Указываете папку. Открываете эту папку и смотрите. И идете пить кофе. Когдато потом ищете, кто поможет создать кнопку/комбинацию клавишь и приклеит этот макрос. И говорите помощнику спасибо, в том числе от меня. Пробуйте. И дайте знать результат.
В следующий раз, если не уверенные, выделяете всю процедуру и переводите в коменты (правая кнопка на панели меню, находите Edit, на нем левой кнопкой, на появившейся панели находите кнопку Comment Block и бабах по ней левой кнопкой мыши).
А это что такое "блин бед...я"? Я не очень хорошо знаю русский.
0
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 29
05.07.2013, 13:15  [ТС]
поняла...ща буду творить)))

Добавлено через 10 минут
так, ну я все сделала, вложения упали в папку нужную, но они остались непрочитанными((( т.е. висят в самом outlook выделенные((((
и опять же я до конца не понимаю, получается эта программка не будет работать сама. а надо будет ее запускать ,как только придут письма?! правильно я понимаю, потому что я сделала кнопку/комбинацию, нажимаю на нее и он мне опять указывает в какую папку все положить.... короче, я что то не допонимаю до конца(((
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
05.07.2013, 14:11
Главное, что работает. Что б он заганял в одну папку - это не проблема (но меня в жизни никто бы не заставил сделать такое для себя - куча доков в одной папке - через неделю я бы с ума сошел от того бардака). Вам все-таки рекомендую подумать. Одна папка (~ My_Post). В ней подпапки (Region_north, Region_west,.....). И указываете - куда. Что б делал прочитанными - тоже не проблема (все встроить в этот же код). Даже поудалять их можно. Но нужен Outlook для тестирования. Неужели Вам там на месте нет кому помочь? Скажите айтишнику, что завалите всю его систему - прибежит, аж тяжело дышать будет.
0
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 29
05.07.2013, 14:51  [ТС]
Короче не выходит опять...пришло два письма с вложениями.... одно прочел и сохранил, со вторым вообще ничего не сделал это просто ужас какой то
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
05.07.2013, 14:52
Вы, перед запуском, выделили все два письма?
0
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 29
05.07.2013, 15:07  [ТС]
Так вот о чем я и говорю!!! получается в ручную делаю, он сбрасывает все, но только не ставит прочитанным, а когда автоматически, то он через один делает, т.е. первое не читает в начале и не сохраняет, приходит следующее, она первое только сохраняет и прочитывает, а второе опять же оставляет без действия...
в идеале должно быть, чтобы приходили письма, без моего участия они читались и сохранялись сразу...
Может это проблема outlook, может это уже дело не в макросе, тем более вы говорили, что у вас он работает нормально....как проверить сам то outlook???
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
05.07.2013, 15:37
Это исходный код. Фундамент. Его еще нужно подогнать под себя. Ну как кто-то очень любит в еде много перца, а кто-то - соль....
0
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 29
05.07.2013, 15:59  [ТС]
это понятно....но в итоге то он работает и работал, но только почему то через раз....я вот этого понять не могу...пПОЧЕМУ ОН ПЕРВОЕ ПРОПУСКАЕТ, А ВТОРОЕ ОБРАБАТЫВАЕТ?????
0
6 / 6 / 3
Регистрация: 29.08.2016
Сообщений: 107
26.09.2017, 17:34
Цитата Сообщение от Igor_Tr Посмотреть сообщение
Вот протестировать не могу, к сожалению. Копируете все это в модуль VBA Outlook (желательно - новый). Запускаете процедуру Sub test(). Имя (test) можете изменить (если у Вас уже есть такие имена процедур).
Можете мне помочь

как в коде ниже прописать чтобы Outlook периодически сохранял новые письма с вложением в БД Access и помечал их прочитанными. тип учетной записи "IMAP"

Visual Basic
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
31
32
33
34
35
36
37
38
39
40
41
Option Explicit
'http://stackoverflow.com/questions/11781320/ _
         download-attachment-from-outlook-and-open-in-excel
 
Const olFolderInbox As Integer = 6
'~~> Path for the attachment
Const AttachmentPath As String = "G:\Вложения\"
 
Sub DownloadAttachment()
    Dim oOlAp As Object, oOlns As Object, oOlInb As Object
    Dim oOlItm As Object, oOlAtch As Object
    '~~> New File Name for the attachment
    Dim NewFileName As String
    NewFileName = AttachmentPath & Format(Date, "DD-MM-YYYY") & "-"
 
    '~~> Get Outlook instance
    Set oOlAp = GetObject(, "Outlook.application")
    Set oOlns = oOlAp.GetNamespace("MAPI")
    Set oOlInb = oOlns.GetDefaultFolder(olFolderInbox)
 
    '~~> Check if there are any actual unread emails
    If oOlInb.Items.Restrict("[UnRead] = True").Count = 0 Then
        MsgBox "Нет новых сообщений"
        Exit Sub
    End If
 
    '~~> Extract the attachment from the 1st unread email
    For Each oOlItm In oOlInb.Items.Restrict("[UnRead] = True")
        '~~> Check if the email actually has an attachment
        If oOlItm.Attachments.Count <> 0 Then
            For Each oOlAtch In oOlItm.Attachments
                '~~> Download the attachment
                oOlAtch.SaveAsFile NewFileName & oOlAtch.FileName
'                Exit For
            Next
        ' Else
            ' MsgBox "The First item doesn't have an attachment"
        End If
        Exit For
    Next
 End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.09.2017, 17:34

Макрос для Outlook: автоматическая проверка входящих писем и сохранение аттачментов
Доброго времени суток,друзья! Я не являюсь специалистом в области макросов, но возникла необходимость смены почтовика и допиливания...

Макрос Outlook для сохранения вложения в папку по частичному совпадению имени файла
Всем добрый день! Каждый день приходит в одном письме множество файлов. Есть ли макрос который находит по названию и сохраняет не все...

Надстройка Outlook для шифрования писем
Необходимо, чтобы при нажатии кнопки &quot;отправить&quot; задавался вопрос &quot;Хотите подписать данное письмо?&quot; Если нажали &quot;да&quot;, то,...

Правило для отправки писем outlook 2010
Добрый день! Передо мной стоит задача, над которой бьюсь всю неделю и видимо не пойду на выходные :( Помогите, пожалуйста, блондинке....

Код на VBA для Outlook (поиск непрочитанных писем)
Подскажите, пожалуйста, какой код понадобится для следующих действий: Необходимо с заданной периодичностью включать событие (поиск...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
55
Ответ Создать тему
Новые блоги и статьи
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru