Auditportal.ru

Аудит Портал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как извлечь или экспортировать список задач в Excel в Outlook?

Парсинг электронных писем Outlook и экспорт в Excel VBA

Сценарий, который я пишу, работает в Microsoft Outlook и предназначен для анализа ключевой информации из электронных писем и сохранения ее в электронной таблице Excel.

В данный момент я застрял в логике анализа и извлечения того, что я хочу.

Вот краткий пример электронного письма с информацией, которую необходимо извлечь и сохранить в Excel, обведенной желтым цветом (X обозначает прописные и строчные буквы, # — цифры).

Пример электронной почты

Вот макет Excel и то, что происходит с моим текущим кодом, ничего не отображается, кроме заголовков!

Электронная таблица Excel

Ниже приведен мой текущий код:

Я впервые пишу код на VB, поэтому любая помощь/предложения будут очень полезны!

2 ответа

Ниже приведен код, который поможет вам начать работу

Электронное сообщение разбивается на строки

Затем каждая строка отделяется двоеточием. «:»

Чтобы пустые строки не создавали проблем, в конце каждой строки перед разбиением добавляется двоеточие.)

И затем выполнить действия в соответствии с первыми символами каждой строки

Поместить код в конце этого сообщения в рабочую книгу Excel

Убедитесь, что во время ввода в эксплуатацию внешний обзор открыт.

Не рекомендуется включать макросы VBA в Outlook из-за проблем безопасности, которые могут быть в получаемых вами письмах.

Некоторые рекомендации, которые, возможно, вы уже знаете:

Вы можете перемещаться по коду, установив курсор в любом месте кода и нажав F8 еще раз

Желтая подсветка указывает, какая команда будет выполнена следующей

Наведение указателя мыши на имя переменной показывает значение этой переменной (при наведении в любой точке останова)

Нажмите на серую полосу слева от инструкции, чтобы установить точку останова (не все инструкции имеют возможность остановки) (нажмите еще раз, чтобы удалить)

Если нажать F5, программа перейдет к следующей точке останова или к концу программы, если точки останова нет.

Используйте «окно наблюдения», чтобы внимательно изучить объекты (переменные)

Перейдите в «строку меню», чтобы отобразить окно предварительного просмотра. «просмотр». «окно просмотра».

Перетащите любое имя объекта или переменной в окно просмотра или щелкните правой кнопкой мыши и выберите «добавить часы

Тогда вы сможете отслеживать значение переменной, когда она останавливается на точке останова

Например. перетащите «topOlFolder» из третьего оператора Dim (или из любого другого места программы)

Читайте так же:
Как импортировать и экспортировать правила в Outlook?

Использование мгновенного окна

Нажмите Ctrl-G, чтобы вызвать «немедленное окно». любая команда «Debug.print» будет печатать в «немедленное окно». это используется для отображения любой необходимой отладочной информации без необходимости останавливаться в точке остановки

При написании кода VBA лучшим подходом будет сначала написать макрос, а затем использовать VBEIDE для редактирования полученного макрокода.

Большая часть кода записанного макроса не нужна и может быть сокращена

Например, когда вы находитесь на «Листе 5», вы должны удалить все с «Листа 2» и перейти к «Листу 5»:

С помощью макроса можно выполнить следующие действия:

«щелкните вкладку Sheet2. выделите все ячейки (ctrl-a) . щелкните «удалить». щелкните вкладку Sheet5 «.

Создает следующий макрос

Это может быть записано как

Очищает рабочий лист с именем «Sheet2», не «выбирая» его, поэтому он никогда не появляется на экране

Это может раздражать, если код выполняет много обновлений на разных листах, и каждое обновление появляется на экране ненадолго

Как скопировать письмо Outlook Outlook в Excel с помощью VBA или макросов

Я новичок в VBA и макросах. Если кто-нибудь может помочь мне с кодом VBA и макросами, это было бы здорово.

В моем почтовом ящике ежедневно появляется около 50-60 писем с одним и тем же вопросом: «Задание выполнено». Я создал правило, которое отправляет все эти письма в определенную папку: «Задание выполнено».

Чтение 50-60 писем в день и их обновление занимает много времени. Все 50-60 сообщений, которые приходят в мой почтовый ящик, будут иметь один и тот же объект, но от разных пользователей. Содержание письма будет изменено.

Мои программы Outlook 2010 и Excel 2010 — обе версии 2010.

enter image description here

Поскольку вы не указали, что именно копировать, я оставил этот раздел пустым в приведенном ниже коде.

Вам также не нужно сначала перемещать письмо в папку, а затем запускать макрос в этой папке. Можно запустить макрос на входящей почте и одновременно переместить ее в папку.

Это поможет вам начать работу. Чтобы у вас не возникло проблем с пониманием кода, я прокомментировал его.

В модуле Outlook вставьте следующий код.

Когда приходит новое письмо, оно не только перемещается по электронной почте в указанную папку, но и данные письма также экспортируются в Excel.

UNTESTED

Последующие меры

Если вы хотите извлечь содержимое из текста электронного письма, вы можете разделить его с помощью функции SPLIT(), а затем извлечь из него соответствующую информацию. См. этот пример

Читайте так же:
Как изменить шрифты в заметках Outlook?

Новая концепция2

Я использовал этот оператор для поиска папки Inbox в ранней версии макроса «SaveEmailDetails»:

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

Макрос для отображения имени хранилища, в котором хранятся папки Входящие по умолчанию в окне Немедленно:

В моей установке это дает следующее: «Файл данных Outlook».

Я добавил дополнительный оператор в макрос «SaveEmailDetails», показывающий, как получить доступ к папке «Входящие» любого архива.

Введение

Несколько человек взяли приведенный ниже макрос, сочли его полезным и обратились ко мне за дополнительными рекомендациями. Ниже приведена обновленная версия, которую я опубликовал после внесения нескольких улучшений в макрос. Я также добавил пару макросов, которые вместе возвращают объект MAPIFolder для любой папки в иерархии Outlook. Доступ к ним отличается от доступа к папке по умолчанию.

В оригинальном тексте один вопрос перечислен по дате и связан с более ранним вопросом. Поскольку первый вопрос был удален, ссылка была потеряна. Это было Обновление листа Excel на основе почты Outlook (закрыто)

Источник:

» Как извлечь данные из писем Outlook в книги Excel?» — распространенный вопрос. Подобный вопрос был задан дважды на [outlook-vba] 13 августа. В вопросе от декабря я попытался ответить на один из вариантов.

Декабрьский ответ состоял из двух частей. Мы начали с набора обучающих макросов, призванных помочь вам научиться перемещаться по папкам Outlook и сохранять текстовые файлы или книги Excel. Во второй части обсуждалась разработка процесса извлечения. На этот вопрос Сиддхарт дал отличный, лаконичный ответ, а затем предоставил последующую помощь для следующего шага.

Что, похоже, не может понять каждый запрос опции, так это показать нам, как выглядят данные на экране, а не говорить нам, как выглядит тело текста или html. Данный ответ является попыткой преодолеть эту проблему.

Ниже приведен макрос, который сложнее, чем у Сиддарта, но гораздо проще, чем мой декабрьский ответ. Этого более чем достаточно, чтобы начать работу, но я думаю, что этого достаточно.

Читайте так же:
Как изменить сообщение в формате html в Outlook?

Макрос создает новый лист Excel и отображает выбранные свойства для каждого письма в папке входящих сообщений, чтобы создать этот лист:

Example of worksheet created by macro

Макрос начинается с комментария, содержащего восемь хэшей (#). Этот комментарий необходимо изменить, поскольку он определяет, где будет создана книга Excel.

Все остальные хэш-комментарии предлагают корректировки для использования макроса в соответствии с вашими нуждами.

Как определяются электронные письма, из которых нужно извлечь данные? Это отправитель, тема письма, строка в теле письма или все вышеперечисленное? Комментарии помогают удалять неинтересные письма. Если я правильно понял вопрос, то интересное письмо будет иметь тему = «Задание выполнено».

Комментарии не извлекают данные из интересующих писем, но текстовые и html-версии тела письма, если они присутствуют, отображаются в листе. Моя идея заключается в том, что вы можете увидеть, что увидит макрос, и начать разрабатывать процесс извлечения.

На приведенном выше экране этого не видно, но макрос создает две версии в основном тексте. Первая версия без изменений, что означает, что табуляция, возврат каретки и перевод строки соблюдаются, а незакрытые пробелы отображаются как пробелы. Во второй версии я заменил эти коды на строки [TB], [CR], [LF] и [NBSP], чтобы сделать их видимыми. Если мое понимание верно, я ожидаю увидеть во втором тексте следующее:

Активность [TAB] считает [CR] [LF] открыто [TAB] 35 [CR] [LF] HCQA [TAB] 42 [CR] [LF] HCQC [TAB] 60 [CR] [LF] HAbst [TAB ] 50 45 5 2 2 1 [CR] [LF] и т.д.

Извлечение значений из оригинала этой строки не должно быть трудным.

В рамках моего макроса я хотел бы вывести извлеченные значения, а также свойства электронной почты. Когда мне удастся добиться этого изменения, я попытаюсь записать извлеченные данные в существующую книгу. Кроме того, я переместил обработанные электронные письма в другую папку. Изменения, которые необходимо сделать, были продемонстрированы, но никакой дополнительной помощи предоставлено не было. Я отвечу на дополнительный вопрос, если вы дойдете до того момента, когда вам понадобится эта информация.

Последняя версия макроса, включенная в исходный код.

Пользователи приведенного выше макроса нашли полезными другие макросы, не включенные в первоначальный пост.

Как извлечь или экспортировать список задач в Excel в Outlook?

список автозавершения outlook

Здравствуйте уважаемый читатель, я уверен многие из вас на работе используют такую программу для обработки и приема писем как outlook, по крайней мере в моей компании, большинство сотрудников используют ее в версии 2013 sp1. Представим ситуацию, что у вас у сотрудника появился новый компьютер и вам нужно перенести его почту на него, не важно pop3 у вас или IMAP, письма вы перенесете быстро и без проблем, самые часто упускаемые вещи при переносе, это правила и список автозаполнения outlook. Сегодня мы займемся последним. И рассмотрим, как перенести список автозаполнения outlook на другой компьютер.

Читайте так же:
Как изменить цвет шрифта при ответе или пересылке писем в Outlook?

Что такое кэш outlook

Вот краткое введение в кэш Outlook. Поскольку я не буду слишком углубляться в историю, я просто отмечу, что начиная с MS Outlook 2003, существует очень полезная функция автозаполнения адресов электронной почты, когда вы набираете новое письмо в поле To. На английском языке эта функция называется Auto-Complete, но в нашей локализованной версии она называется autocomplete list.

Если у вас на работе есть почтовый сервер MS Exchenge, вам повезло, так как автозаполняемый список есть, и на каком бы компьютере вы ни работали, у вас все будет на виду, так как на сервере для этого есть предложенная папка контактов. Но если, как и у меня, у вас нет сервера MS Exchenge, вам придется довольствоваться перемещением кэша outlook на другой компьютер.

В старых версиях Outlook, до 2007 года, этот локальный кэш хранился в файле Outlook.NK2. Этот файл был расположен по этому пути:

outlook кэш адресов

С Outlook 2010 по 2016 год кэш адресов больше не хранится в файле Outlook. NK2, его просто не существует, теперь все находится в файле Stream_Autocomplete_0.dat о нем мы поговорим ниже. Кроме того, забыл упомянуть, что я уже показывал, как очистить кэш для Outlook 2013 и выше.

Где лежит список автозавершения outlook

Сейчас я объясню, как получить кэш outlook и где он находится на компьютере. Во-первых, я настроил свою почту на новом компьютере на работу с IMAP. Я создаю новое письмо, например, на свой почтовый ящик microsoftexam@yandex.ru. Когда я наполовину заполняю адрес, как вы видите, он не появляется в списке автозаполнения, потому что его просто не существует.

outlook кэш адресов-2

Чтобы начать миграцию, необходимо включить просмотр скрытых файлов и папок на старом компьютере — если вы не знаете, как это сделать, прочитайте эту статью. Затем следуйте по этому пути:

Читайте так же:
Как массово добавить всех / нескольких отправителей писем к контактам в Outlook?

Как перенести список автозавершения outlook-2

Нажав на кнопку для открытия местоположения файла данных, вы можете попасть сюда и из настройки счетов.

Как перенести список автозавершения outlook-3

То, что вы можете здесь найти, очень интересно:

  • Stream_Autocomplete_0_.dat > это файл списка автозаполнения для Outlook 2010-2016
  • Stream_Calendar_2_.dat > календарь
  • Stream_RssRule_2_.dat > правила RSS

Мигрируем кэш outlook

Имея представление о том, где находится кэш outlook 2007 и кэш outlook 2013, вы можете безопасно перенести его. Наконец, я покажу вам, как это сделать для старых версий, где находится файл Outlook. Честно говоря, я считаю эти продукты устаревшими.

Переносим список автозавершения из outlook 2007 в 2013

В случае с Outlook 2016 все точно так же. Скопировав файл Outlook.NK2 в новую систему, вы можете перед его применением запустить бесплатную утилиту под названием NK2View, которая позволяет просматривать как текущий кэш, так и файлы NK2. Вы можете скачать NK2View здесь. Как вы видите, до передачи списка автозаполнения между пользователями у меня был только один адрес в кэше Outlook, это для того, чтобы дать вам представление о том, что там сейчас находится.

Перенос списка автозаполнения между пользователями

Затем скопируйте файл Outlook. NK2 в

  • для Windows 7 — C:Users%username%AppDataRoamingMicrosoftOutlook,
  • для Windows XP — C:Documents and Settings%username%Application SettingsMicrosoftOutlook

И выполнить команду, можно сделать это прямо во время запуска:

Переносим список автозавершения из outlook 2007 в 2013

Переносим список автозавершения из outlook 2013 в 2013

В результате, если вы перейдете на новый компьютер и скопируете полное имя файла Stream_Autocomplete_0_unique ID.dat, вы увидите длинную последовательность символов (похожую на SID), которые были сгенерированы по-разному для всех пользователей. В данном примере копирование старого файла не сработает из-за неправильного ID. Имеет смысл взять старый файл, скопировать его в папку RoamCache на новом компьютере и переименовать его в новое имя с правильным ID.

Как перенести список автозавершения outlook-4

Похоже, что у меня есть 2 файла кэша, старый весит 204 кб. Удалите новый файл, но не забудьте полностью скопировать его имя.

Переносим список автозавершения из outlook 2013 в 2013-1

Изменив имя старого файла на то, которое вы скопировали, вы получите свой список автозаполнения обратно.

Переносим список автозавершения из outlook 2013 в 2013-2

Теперь мы увеличили количество контактов в новом письме, и, как видите, это очень просто, мы смогли сделать это в течение нескольких минут.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector