Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 4
1

Как добавить имена вложений Outlook в Excel с последующим сохранением их в указанной папке

27.04.2015, 17:13. Показов 1060. Ответов 1
Метки нет (Все метки)

Добрый день всем гуру Excel-я.

Благодаря этому форуму мне получилось наладить документооборот в Excel (точнее регистрацию входящих-исходящих писем) в более-менее автоматизированном виде.
В приложенном файле следующие основные макросы:
1. "Первое_MailSave" - прописывает письма из папки входящие Outlook
2. "Второе_в_шаблон" - выдает входящий номер и выводит данные в определенный шаблон (одобренный руководством в плане удобочитаемости)
3. "Завершение_Печать" - сохраняет лист шаблона в формате pdf в папке с входящим номером и пускает на печать.
Т.е. счастье есть, теперь полная обработка 10 писем занимает 3-4 минуты, а не 30-40.

Проблема с обработкой вложений:
1. Как не в ручную прописывать кол-во вложений в письме, а автоматом с выводом в ячейку E4 листа "data" количества + 1 (само письмо)
2. Как в листе "Шаблон" в В5 перечислить все вложения по именам
3. Что добавить в макрос "Завершение_Печать", чтобы вложения сохранялись в новосозданную папку с самим письмом.

Все данные из письма забираются, а вот с вложением так и не придумал как(см.код)
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
Sub Первое_MailSave()
Application.EnableEvents = False
    Dim oOutlook As New Outlook.Application
    Dim oNamespace As Outlook.Namespace
    Dim myFolder As Outlook.Folder
    Dim myMail As Outlook.Items
    Dim myItem As Outlook.MailItem
    Dim r
 
        Set oNamespace = oOutlook.GetNamespace("MAPI")
        'папка в Outlook, откуда сохраняем письма
        Set myFolder = oNamespace.GetDefaultFolder(olFolderInbox) 'если письма нужны из вложенной папки, то записывается в следующем виде:
        '.Folders("webley").Folders("test")
        Set myMail = myFolder.Items
                 
                 
                 
        Cells.Clear
        Cells(3, 2) = "От кого"
        'Cells(1, 2) = "E-mail"
        'Cells(1, 3) = "Кому"
        Cells(3, 3) = "Тема"
        Cells(3, 1) = "Дата"
        Cells(3, 4) = "Тело письма"
        Cells(3, 5) = "Кол-во страниц"
 
        r = 4
        For Each myItem In myMail
            On Error Resume Next
                Cells(r, 2) = myItem.SenderName
               ' Cells(r, 2) = myItem.SenderEmailAddress
               ' Cells(r, 3) = myItem.To
                Cells(r, 3) = myItem.Subject
                Cells(r, 1) = myItem.CreationTime
                Cells(r, 4) = myItem.Body
                 
            On Error GoTo 0
            r = r + 1
        Next
        Application.EnableEvents = True 'отключаем обработку события
End Sub
Поиски в интернете все ссылаются на макросы для outlook, но регистрация и создание необходимых директорий у меня происходит в excel, соответственно все переменные в нем же.
С одной стороны, у меня три разных вопроса, но, мне кажется, что оптимальнее будет реализовать все три вопроса в одном макросе.


С уважением, Лев
0
Вложения
Тип файла: rar mail_checkold.rar (75.8 Кб, 6 просмотров)
Заказывайте контрольные, курсовые и дипломы здесь.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2015, 17:13
Ответы с готовыми решениями:

Автозаполнение из excel с последующим сохранением в отдельные файлы
Здравствуйте! Есть у меня такая беда, около 1000 одинаковых памяток (памятка пример) и список с...

Диалог выбора папки с последующим получением пути к этой папке. Как его получить?
Добрый вечер! У меня возникла проблема, мне нужно нажав по кнопке "Browse", находящейся рядом с...

Как удалить все файлы в указанной папке ?
Зная путь к папке, требуется максимально просто и надежно удалить все файлы в этой папке...

Обработка вложений Outlook
Всем доброго времени суток! Имеется следующая задача: С определенной периодичностью на...

1
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 4
29.04.2015, 10:01  [ТС] 2
В итоге получился полный и автоматизированный документооборот.
Для переноса писем с вложениями в excel и соотв. папки
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Sub Ïåðâîå_MailSave()
Application.EnableEvents = False
    Dim oOutlook As New Outlook.Application
    Dim oNamespace As Outlook.Namespace
    Dim myFolder As Outlook.Folder
    Dim myMail As Outlook.Items
    Dim myItem As Outlook.MailItem
    Dim r
 
        Set oNamespace = oOutlook.GetNamespace("MAPI")
        'ïàïêà â Outlook, îòêóäà ñîõðàíÿåì ïèñüìà
        Set myFolder = oNamespace.GetDefaultFolder(olFolderInbox) 'åñëè ïèñüìà íóæíû èç âëîæåííîé ïàïêè, òî çàïèñûâàåòñÿ â ñëåäóþùåì âèäå:
                                                                                        '.Folders("webley").Folders("test")
        Set myMail = myFolder.Items
    
    destinationFolder = "E:\temp\test\Att\"
    Êîëè÷åñòâî = 0
    ÏîÈìåíàì = ""
                
                
        Cells.Clear
        Cells(3, 2) = "Îò êîãî"
        'Cells(1, 2) = "E-mail"
        'Cells(1, 3) = "Êîìó"
        Cells(3, 3) = "Òåìà"
        Cells(3, 1) = "Äàòà"
        Cells(3, 4) = "Ñîäåðæàíèå"
        Cells(3, 5) = "Êîë-âî ñòðàíèö"
        Cells(3, 6) = "Âëîæåíèÿ"
 
        r = 4
        For Each myItem In myMail
            On Error Resume Next
              ''<<<<<<<<<<<<<<< 3  â îäíîì >>>>>>>>>>>>>>
               
              Set colAttachments = myItem.Attachments
              Êîëè÷åñòâî = colAttachments.Count + 1
              For Each objAttachment In colAttachments
              MkDir (destinationFolder & myItem.SenderName)
              destinationFolder1 = (destinationFolder & myItem.SenderName)
                  objAttachment.SaveAsFile (destinationFolder1 & "/" & objAttachment.Filename)
                  ÏîÈìåíàì = ÏîÈìåíàì & objAttachment.Filename & "; "
              Next
            ''<<<<<<<<<<<<<<<>>>>>>>>>>>>>>
                Cells(r, 2) = myItem.SenderName
               ' Cells(r, 2) = myItem.SenderEmailAddress
               ' Cells(r, 3) = myItem.To
                Cells(r, 3) = myItem.Subject
                Cells(r, 1) = myItem.CreationTime
                Cells(r, 4) = myItem.Body
                Cells(r, 5) = Êîëè÷åñòâî
                Cells(r, 6) = ÏîÈìåíàì
                
            On Error GoTo 0
            r = r + 1
       Next
        Application.EnableEvents = True 'îòêëþ÷àåì îáðàáîòêó ñîáûòèÿ
End Sub
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2015, 10:01

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Получение вложений в outlook
Добрый день. Пытаюсь создать скрипт для вставки в правило с целью получения вложенных файлов в...

Сортировка таблицы с последующим сохранением
Добрый день, У меня возникла проблема с сохранением сортировки в таблицу. Мне надо что бы...

Как добавить линии вложений в Visual Studio?
Если я правильно понимаю, то это линии вложений. Как их включить в visual studio? (конкретно в C#...

Как отобразить список файлов с разширением в указанной папке?
Собственно сабж... нужно сделать некий сканер папок на предмет файлов, допустим *.jpg В каком...

Автообработка вложений в Outlook|OutlookExpress
Возникла необходимость автообработки вложений в емале Outlook|OutlookExpress, но нет опыта....

Outlook. Автоматическое сохранение вложений
Для автоматического сохранения вложений при приеме новых писем у меня поставлен следующий макрос: ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.