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

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

02.07.2013, 13:37. Показов 18493. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru