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

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

02.07.2013, 13:37. Показов 18331. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru