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

экспортные задачи, чтобы превзойтиЯвляетесь ли вы поклонником Microsoft или нет, по крайней мере, одна хорошая вещь, которую можно сказать о продуктах MS Office, это то, насколько легко интегрировать каждый из них друг с другом.

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

Если вы все сделаете правильно, вы можете сократить нагрузку на весь день на лодке, просто автоматизируя процесс интеллектуальным и эффективным способом.

Если вы следите за моим письмом здесь, то вы знаете, что в прошлом я освещал такие вещи, как интеграция функций веб-браузера в Excel

, автоматически максимизируя окна приложения

или автоматизировать обновление диаграмм в Excel

,

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

Подача задач Outlook в электронную таблицу Excel

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

В любом случае, возможность собирать и выводить незавершенную информацию о задачах Outlook — полезная вещь.

Для этого примера, вот мой примерный список задач Outlook с 5 оставшимися задачами, которые я еще не выполнил.

экспортные задачи, чтобы превзойти

Все, что мы собираемся делать здесь, в VBA. В Outlook вы попадаете в редактор VBA, нажав «Инструменты», затем «Макрос» и затем выбрав «Редактор Visual Basic».

экспорт задач Outlook в CSV

Код, который вы собираетесь использовать для захвата списка задач и его экспорта в Excel, на самом деле не так сложен, как вы думаете. Первый шаг — подключить как объекты Outlook, так и объекты Excel, создав необходимые определения переменных. Затем, используя созданный объект рабочей книги, начните с создания заголовка в электронной таблице.

Dim strReport As String
Dim olnameSpace As Outlook.NameSpace
Dim taskFolder As Outlook.MAPIFolder
Тусклые задачи как Outlook.Items
Dim tsk As Outlook.TaskItem
Dim objExcel As New Excel. Приложение
Dim exWb As Excel.Workbook
Дим шт как Excel.Worksheet
Dim strMyName As String
Dim x As Integer
Dim y As Integer
Установите exWb = objExcel.Workbooks.Open ("c: \ temp \ MyActiveTasks.xls")
'exWb.Sheets (strMyName). Удалить
'exWb.Sheets.Add (strMyName)
Установите olnameSpace = Application.GetNamespace ("MAPI")
Установите taskFolder = olnameSpace.GetDefaultFolder (olFolderTasks)
Set tasks = taskFolder.Items
strReport = ""
Создать заголовок
exWb.Sheets ("Sheet1"). Ячейки (1, 1) = "Тема"
exWb.Sheets ("Sheet1"). Ячейки (1, 2) = "Срок оплаты"
exWb.Sheets ("Sheet1"). Ячейки (1, 3) = "Процент завершен"
exWb.Sheets ("Sheet1"). Ячейки (1, 4) = "Статус"

[/ NOEDIT]

Итак, вот как выглядит новая электронная таблица. Ваше приложение Outlook только что создало новый файл Excel с именем «MyActiveTasks.xls» в каталоге C: \ temp и создало заголовок для задач, которые вы собираетесь вставить.

экспорт задач Outlook в CSV

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

у = 2
Для х = 1 к задачам. Счет
Установите tsk = tasks.Item (x)
'strReport = strReport + tsk.Subject + ";"
Заполните данные
Если не цк.полный то
exWb.Sheets ("Ryan"). Ячейки (y, 1) = tsk.Subject
exWb.Sheets ("Ryan"). Ячейки (y, 2) = tsk.DueDate
exWb.Sheets ("Ryan"). Ячейки (y, 3) = tsk.PercentComplete
exWb.Sheets ("Ryan"). Ячейки (y, 4) = tsk.Status
у = у + 1
Конец, если
Следующий х

[/ NOEDIT]

Этот сценарий выполняет поиск по всему списку элементов задач в Outlook, проверяет, завершен ли еще элемент, а если нет, то вставляет информацию о задачах в 4 ячейки электронной таблицы. Если вы хотите, вы можете вставить больше информации. Просто выясните, какая информация о задании доступна, набрав «tsk», а затем просмотрите список всплывающих свойств.

Теперь вот как выглядит лист.

экспорт задач Outlook в CSV

Будучи немного перфекционистом, все еще есть проблема. Заметьте, как столбец А обрезал тему последнего задания? Мне это не нравится. Итак, давайте добавим немного больше кода для автоматического подбора всех столбцов в таблице Excel.

'Подгонка всех столбцов ширины
Для каждого шт в ActiveWorkbook.Worksheets
sht.Columns ( "А"). EntireColumn.AutoFit
sht.Columns ( "B"). EntireColumn.AutoFit
sht.Columns ( "С"). EntireColumn.AutoFit
sht.Columns ( "D"). EntireColumn.AutoFit
Следующая шт
exWb.Save
exWb.Close
Установить exWb = ничего

[/ NOEDIT]

Методы «Сохранить» и «Закрыть» в этих последних нескольких строках сохранят лист и закроют его, чтобы приложение не блокировалось приложением, иначе будет трудно открыть файл Excel, пока вы не закроете Outlook.

Итак, вот как выглядит готовая таблица.

экспортные задачи, чтобы превзойти

Когда вы устанавливаете скрипт для запуска? Ну, я настроил его на запуск по событию «Application.Close ()», которое запускается при выходе из Outlook в конце дня. Это заставит Outlook создать отчет по таблицам Excel в конце дня, и все это само по себе.

Можете ли вы вспомнить какие-нибудь другие интересные применения этой техники? Может быть, автоматически запускать электронную почту со списком задач или выводить их в файл HTML и отправлять по FTP на ваш веб-сервер?

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

Shutterstock

Ссылка на основную публикацию
Adblock
detector