Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> макрос экспорта сообщений outlook 
:(
    Опции темы
ilyxaaa
Дата 15.1.2015, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.1.2015

Репутация: нет
Всего: нет



Добрый день. Подскажите макрос для выполнения такой задачи:
экспорт сообщений в txt и причем что бы каждое письмо было отдельным файлом

Нашел только вариант в Excel и только в 1 файл. Привожу ниже

Код

Sub Extract()
On Error Resume Next
Set myOlApp = Outlook.Application
Set mynamespace = myOlApp.GetNamespace("mapi")
Set myfolder = myOlApp.ActiveExplorer.CurrentFolder
Set xlobj = CreateObject("excel.application.14")
xlobj.Visible = True
xlobj.workbooks.Add
'Set Heading
xlobj.Range("a" & 1).Value = "Body"
xlobj.Range("b" & 1).Value = "Recieved time"
xlobj.Range("c" & 1).Value = "Sender"
xlobj.Range("d" & 1).Value = "Subject"
xlobj.Range("e" & 1).Value = "Recieved Time"
For i = 1 To myfolder.Items.Count
 Set myitem = myfolder.Items(i)
 msgtext = myitem.Body
  
 xlobj.Range("a" & i + 1).Value = msgtext
 xlobj.Range("b" & i + 1).Value = myitem.ReceivedTime
 xlobj.Range("C" & i + 1).Value = myitem.To
 xlobj.Range("d" & i + 1).Value = myitem.Subject
 xlobj.Range("e" & i + 1).Value = myitem.Categories
  
 Next
End Sub


PM MAIL   Вверх
Akina
Дата 15.1.2015, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Код

Sub Extract()

Const OutputPath As String = "B:\Temp\"

Dim i As Integer
Dim ff As Integer
Dim MyOlApp, MyNameSpace, MyFolder

Set MyOlApp = Outlook.Application
Set MyNameSpace = MyOlApp.GetNamespace("mapi")
Set MyFolder = MyOlApp.ActiveExplorer.CurrentFolder

On Error Resume Next

For i = 1 To MyFolder.Items.Count
    ff = FreeFile
    Open OutputPath & CStr(i) & ".txt" For Output As #ff
    Set MyItem = MyFolder.Items(i)
    Print #ff, "Body = """ & MyItem.Body & """"
    Print #ff, "ReceivedTime = """ & MyItem.ReceivedTime & """"
    Print #ff, "To = """ & MyItem.To & """"
    Print #ff, "Subject = """ & MyItem.Subject & """"
    Print #ff, "Categories = """ & MyItem.Categories & """"
    Close #ff
Next

End Sub




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ilyxaaa
Дата 15.1.2015, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.1.2015

Репутация: нет
Всего: нет



Akina, Спасибо огромное. 
Еще такой вопрос а как сделать что бы имя файлу давалось такое ( дата сообщения-от кого-тема ) 

PM MAIL   Вверх
Akina
Дата 15.1.2015, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Не советую. Обязательно попадутся символы, недопустимые в имени файла.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ilyxaaa
Дата 15.1.2015, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.1.2015

Репутация: нет
Всего: нет



Akina,  хотябы отправитель что был . что бы можно было понимать от кого не открывая
PM MAIL   Вверх
ilyxaaa
Дата 15.1.2015, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.1.2015

Репутация: нет
Всего: нет



Akina, с этим разобрался спасибо. 
Но появилась новая проблема . как сделать что бы макрос автоматически запускался если появляется новое сообщение?
PM MAIL   Вверх
Akina
Дата 15.1.2015, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Для этого нужно создать надстройку с требуемой функцией и подключить её в правилах обработки писем.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ilyxaaa
Дата 16.1.2015, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.1.2015

Репутация: нет
Всего: нет



Akina, а можно поподробнее по поводу создания надстройки? 

PM MAIL   Вверх
Akina
Дата 16.1.2015, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(ilyxaaa @  16.1.2015,  11:40 Найти цитируемый пост)
можно поподробнее по поводу создания надстройки?  

Нет. Меня этот вопрос никогда не интересовал. Я ориентируюсь на справку по созданию правил сортировки почты - там в качестве внешнего обработчика писем указаны только надстройки.

Должен сказать, что я не изучал объектную модель Outlook. Возможно, там просто есть где-то в недрах метод, срабатывающий при получении письма (это может быть как метод письма, так и метод аппликации или иного объекта). Если таковой будет найден - достаточно будет просто навесить именно на него выполнение требуемой функции. Правда, нужно будет убедиться, что он срабатывает безусловно.

Возможен и другой подход - отсабклассить аппликацию или иной объект схемы (тот же CurrentFolder) и вытащить наружу эвент и интерфейс обработчика. У аппликации такой точно должен быть, ниже - надо копать описание модели.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.