Jak wyeksportować zadania programu Outlook do programu Excel za pomocą VBA

  • Joseph Goodman
  • 0
  • 4827
  • 734
Reklama

Bez względu na to, czy jesteś fanem Microsoft, przynajmniej dobrą rzeczą, którą można powiedzieć o produktach MS Office, jest to, jak łatwo jest zintegrować każdy z nich ze sobą.

Wystarczy pomyśleć o mocy, która pochodzi z tego, że przychodzące wiadomości e-mail automatycznie generują nowe zadania lub nowe terminy kalendarza, lub że ukończone zadanie automatycznie wysyła wiadomość e-mail do szefa ze zaktualizowanym raportem stanu z opisu zadania.

Jeśli zrobisz to dobrze, możesz zmniejszyć obciążenie pracą przez cały dzień dzięki automatyzacji rzeczy w inteligentny i wydajny sposób.

Jeśli śledzisz moje pisanie tutaj, wiesz, że w przeszłości obejmowałem takie rzeczy, jak integrowanie funkcji przeglądarki internetowej w programie Excel Jak zrobić własną podstawową przeglądarkę internetową za pomocą VBA Jak zrobić własną podstawową przeglądarkę internetową za pomocą VBA Kiedy naprawdę przestajesz jeśli się nad tym zastanowić, przeglądarka internetowa w najprostszej formie nie jest tak imponującą aplikacją. Mam na myśli, że tak, Internet jest niesamowity jak na wszystkie standardy. Koncepcja łączenia…, automatycznego maksymalizowania okien aplikacji 3 sposoby otwierania aplikacji i systemu Windows zmaksymalizowane za pomocą skryptu VB [Windows] 3 sposoby otwierania aplikacji i systemu Windows zmaksymalizowane za pomocą skryptu VB [Windows] Jeśli jest jedna rzecz, którą uwielbiam robić, to pisać Skrypty VB. Niezależnie od tego, czy jest to plik skryptu Windows, czy skrypt VBA wewnątrz aplikacji, skrypty zapewniają możliwość dodawania funkcji do aplikacji… lub automatyzacji aktualizacji wykresów w programie Excel Jak tworzyć samoregulujące wykresy Excel w trzech łatwych krokach Jak tworzyć samoregulujące Excel Wykresy w trzech prostych krokach Pokażemy, jak samodzielnie aktualizować wykresy Excel. Po prostu dodaj nowe dane i zobacz, jak automatycznie pojawiają się na wykresie. To szybkie i łatwe. .

Cóż, w tym artykule omówię inne zadanie automatyzacji - faktycznie takie, z którego często korzystałem ostatnio - aby automatycznie zaktualizować arkusz kalkulacyjny Excel ze wszystkimi pozostałymi aktywnymi zadaniami programu Outlook na koniec dnia.

Karmienie zadań programu Outlook do arkusza kalkulacyjnego Excel

Istnieje wiele powodów, dla których warto to zrobić. Być może chcesz codziennie śledzić swoje niedokończone zadania w formacie, który możesz szybko wysłać do kogoś (nie jest to tak łatwe w przypadku zadań Outlooka). A może stanie się częścią większego raportu, który będziesz pisać w programie Word.

Niezależnie od przypadku, przydatna jest możliwość przechwytywania i wysyłania niezakończonych informacji o zadaniach programu Outlook.

W tym przykładzie oto moja przykładowa lista zadań programu Outlook z 5 pozostałymi zadaniami, których jeszcze nie ukończyłem.

Wszystko, co tutaj zrobimy, znajduje się w VBA. W programie Outlook możesz przejść do edytora VBA, klikając “Przybory“, następnie “Makro” a następnie wybierając “Edytor Visual Basic“.

Kod, którego zamierzasz użyć do przechwycenia listy zadań i wyeksportowania jej do Excela, nie jest tak skomplikowany, jak mogłoby się wydawać. Pierwszym krokiem jest podłączenie zarówno obiektów programu Outlook, jak i obiektów programu Excel poprzez utworzenie niezbędnych definicji zmiennych. Następnie, korzystając z utworzonego obiektu skoroszytu, zacznij od utworzenia nagłówka w arkuszu kalkulacyjnym.

Dim strReport As String Dim olnameSpace As Outlook.NameSpace Dim taskFolder As Outlook.MAPIFolder Dim task As Outlook.Items Dim tsk As Outlook.TaskItem Dim objExcel As New Excel.Application Dim exWb As Excel.Workbook Dim sht As Excel.Worksheet Dim strMyName As String Dim x As Integer Dim y As Integer Set exWb = objExcel.Workbooks.Open ("c: \ temp \ MyActiveTasks.xls") 'exWb.Sheets (strMyName) .Delete' exWb.Sheets.Add (strMyName) Ustaw olnameSpace = Application.GetNamespace ("MAPI") Ustaw taskFolder = olnameSpace.GetDefaultFolder (olFolderTasks) Ustaw zadania = taskFolder.Items strReport = "" 'Utwórz nagłówek exWb.Sheets ("Arkusz1"). Komórki (1, 1) = "Temat" exWb . Arkusze („Arkusz 1”). Komórki (1, 2) = „Termin wykonania” exWb.Sheets („Arkusz1”). Komórki (1, 3) = „Procent ukończony” exWb.Sheets („Arkusz 1”). Komórki ( 1, 4) = „Status”

Oto, jak wygląda nowy arkusz kalkulacyjny. Twoja aplikacja Outlook właśnie utworzyła nowy plik Excel o nazwie “MyActiveTasks.xls” w katalogu C: \ temp i utworzył nagłówek dla zadań, które zamierzasz wstawić.

Teraz nadszedł czas, aby wyodrębnić swoje zadania i wstawić je do pliku Excel. Używam “y” zmienna zaczynająca się od drugiej, aby upewnić się, że pierwszy użyty wiersz nie jest pierwszym, ponieważ nie chcę nadpisywać nagłówka.

y = 2 Dla x = 1 Do zadań. Liczba zestawów tsk = zadania. Element (x) 'strReport = strReport + tsk.Subject + ";"' Uzupełnij dane, jeśli nie tsk. Uzupełnij Następnie exWb.Sheets ("Ryan") . Komórki (y, 1) = tsk.Subject exWb.Sheets („Ryan”). Komórki (y, 2) = tsk.DueDate exWb.Sheets („Ryan”). Komórki (y, 3) = tsk.PercentComplete exWb . Arkusze („Ryan”). Komórki (y, 4) = tsk.Status y = y + 1 End If Next x

Skrypt przeszukuje całą listę elementów zadań w Outlooku, sprawdza, czy element jest już ukończony, a jeśli nie jest, wstawia informacje o zadaniu do 4 komórek arkusza kalkulacyjnego. Jeśli chcesz, możesz wstawić więcej informacji. Po prostu sprawdź, jakie informacje o zadaniu są dostępne, pisząc “tsk.” a następnie przeglądanie listy wyskakujących właściwości.

Oto, jak wygląda arkusz.

Będąc trochę perfekcjonistą, wciąż jest problem. Zwróć uwagę, jak kolumna A przycięła ostatni temat zadania?” Nie lubie tego Dodajmy więc trochę więcej kodu, aby automatycznie dopasować wszystkie kolumny w tabeli Excel.

„Automatycznie dopasuj wszystkie szerokości kolumn dla każdego sht W ActiveWorkbook.Worksheets sht.Columns („ A ”). EntireColumn.AutoFit sht.Columns („ B ”). EntireColumn.AutoFit sht.Columns („ C ”). EntireColumn.AutoFit sht. Kolumny („D”). EntireColumn.AutoFit Następny sht exWb.Save exWb.Zamknij zestaw exWb = Nic

The Zapisać i Blisko metody w tych ostatnich kilku wierszach zapisują arkusz i zamykają go, aby nie pozostawał zablokowany przez aplikację, w przeciwnym razie trudno byłoby otworzyć plik Excel, dopóki nie zamkniesz programu Outlook.

Oto, jak wygląda gotowy arkusz kalkulacyjny.

Kiedy ustawiasz uruchamianie skryptu? Cóż, skonfigurowałem go, aby działał na “Application.Close ()” zdarzenie, które jest uruchamiane po wyjściu z programu Outlook pod koniec dnia. Spowoduje to, że program Outlook wygeneruje raport arkusza kalkulacyjnego Excel na koniec dnia, sam.

Czy możesz wymyślić inne fajne zastosowania tej techniki? Być może automatyczne odpalenie wiadomości e-mail z listą zadań lub przesłanie jej do pliku HTML i przesłanie jej na serwer WWW?

Przy odrobinie kreatywności zadziwiające jest to, co możesz zrobić przy odrobinie automatyzacji skryptów. Podziel się swoimi przemyśleniami i pomysłami w sekcji komentarzy poniżej!

Shutterstock




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.