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

  • William Charles
  • 0
  • 3972
  • 321
Реклама

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

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

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

Если вы следите за моим написанием здесь, то вы знаете, что в прошлом я освещал такие вещи, как интеграция функций веб-браузера в Excel, как сделать свой собственный базовый интернет-браузер с помощью VBA, как сделать свой собственный базовый интернет-браузер, используя VBA, когда вы действительно остановились если подумать, то интернет-браузер в его простейшей форме не очень впечатляет приложение. Я имею в виду, да, Интернет удивительный по чьим-либо стандартам. Концепция связывания…, автоматически максимизирующая окна приложений 3 способа открытия приложений и Windows с помощью VB Script [Windows] 3 способа открытия приложений и Windows с помощью VB Script [Windows] Если есть одна вещь, которую я люблю делать, это написать VB скрипты. Будь то файл сценария Windows или сценарий VBA внутри приложения, сценарии предоставляют возможность добавлять функции в приложения ... или автоматизируют обновление диаграмм в Excel. Как создать самообновляющиеся диаграммы Excel за три простых шага Как создать самообновляющееся приложение Excel Диаграммы в три простых шага Мы покажем вам, как сделать ваши диаграммы Excel самообновления. Просто добавьте новые данные и посмотрите, как они автоматически отображаются на вашем графике. Это быстро и легко. .

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

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

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

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

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

Все, что мы собираемся сделать здесь, находится в VBA. В Outlook вы попадаете в редактор VBA, нажав “инструменты“, затем “макрос” а затем выбирая “Visual Basic Editor“.

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

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

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

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

y = 2 Для x = 1 Для tasks.Count Установите tsk = tasks.Item (x) 'strReport = strReport + tsk.Subject + ";"' Заполните данные, если не tsk.Complete Then ExWb.Sheets ("Ryan") .Cells (y, 1) = tsk.Subject exWb.Sheets ("Ryan"). Cells (y, 2) = tsk.DueDate exWb.Sheets ("Ryan"). Cells (y, 3) = tsk.PercentComplete exWb .Sheets ("Ryan"). Ячейки (y, 4) = tsk.Status y = y + 1 End If Next x

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

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

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

'Подгонка всех столбцов ширины для каждого шт. В ActiveWorkbook.Worksheets sht.Columns ("A"). WholeColumn.AutoFit sht.Columns ("B"). WholeColumn.AutoFit sht.Columns ("C"). ВесьColumn.AutoFit sht. Столбцы ("D"). CompleteColumn.AutoFit Далее sht exWb.Сохранить exWb.Close Установить exWb = Nothing

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

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

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

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

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

Shutterstock




О современных технологиях, просто и доступно.
Ваш гид в мире современных технологий. Узнайте как использовать технологии и гаджеты, которые нас окружают каждый день и научитесь открывать интересные вещи в Интернете.