Windows

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

Как экспортировать задачи 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) = "Статус" 

Итак, вот как выглядит новая электронная таблица. Ваше приложение 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

        End If

   Далее х 

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

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

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

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

  'Подгонка всех столбцов ширины

 Для каждого шт в ActiveWorkbook.Worksheets
     sht.Columns ( "А"). EntireColumn.AutoFit
     sht.Columns ( "В"). EntireColumn.AutoFit
     sht.Columns ( "С"). EntireColumn.AutoFit
     sht.Columns ( "D"). EntireColumn.AutoFit
 Следующая шт

 exWb.Save
 exWb.Close

 Установить exWb = ничего 

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

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

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

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

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

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

Shutterstock

Похожие посты
Windows

Драйверы для Windows 10

Windows

Лучшие приложения для фотографии на вашем Windows Phone

Windows

Команды командной строки для панели управления апплетами

Windows

Официальное приложение SmugMug теперь доступно для Windows Phone