Jak na propojení Excelu s Outlookem

Podobné dokumenty
Tabulka obsluhovaná kódem VBA

Dialog Najít a nahradit

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc.

Spojování textových řetězců na listu

Odstavení automatického zpracování hypertextových odkazů

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Na úvod tip, jak kontrolovat šířku tabulky před a po změně. Chování makra ukazují obrázky. Jak změnit rastr v hotové tabulce Excelu

Panely pro práci s barvami a ohraničením v Excelu 2003 a 2010

3MA481 Propojení Accessu a Excelu David Hach

POVRCHOVÝ (OBRYSOVÝ GRAF)

Generátor list nastavení

Slíbená princezna. Univerzální ComboBox

Různé barvy v grafu pro skutečnost a plán

Jak vložit obrázek do oblasti buněk

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

OBSAH Úvod do VBA... 6 K čemu VBA... 6 Když VBA nestačí... 6 Historie Visual Basicu... 7 Objektový model, vlastnosti, metody, události a funkce...

MsgBox, InputBox, FileDialog, Pravomoci vlastních funkcí (UDF) Function TESTOVKA() 'dialog (MsgBox) TESTOVKA = MsgBox("Baf!

Různé barvy v grafu pro skutečnost a plán

Hromadná změna datumu a času v buňkách

Hromadná korespondence

Povrchový (obrysový graf)

Výběr složek a souborů ve VBA

VÝŘEZ OBLASTI BUNĚK VZORCEM

Tematický celek 03 - Cvičné příklady

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

MS ACCESS A MS WORD V KAŽDODENNÍ PRAXI

MS Excel Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

V článku Skrytý obsah na listu (1) jsme se zabývali obecnými možnosti skrývání obsahu. Dnes se na dané téma podíváme prakticky.

Odstranění řádků (na základě hodnoty)

VISUAL BASIC. Práce se soubory

Metoda FollowHyperlink

MS Excel makra a VBA

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

DATABÁZE ACCESS Ovládací prvky ve formuláři 5 TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ REPUBLIKY.

Empty, Null, Nothing, Missing, prázdný řetězec a buňka

Pole jinak ArrayList ve VBA

Ukazka knihy z internetoveho knihkupectvi

Jako skript se nabízí BAT soubory, VBScript či PowerShell. Zpracovány jsou druhé dva.

Outlook Express

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Článek je napsán pro českou verzi Excelu 2010, ale věřím, že i v jných verzích si dovedete poradit.

Ukázka knihy z internetového knihkupectví

Microsoft. Word. Hromadná korespondence. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Visual Basic for Applications

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Parsování HTML. Pro účely testování jsem vytvořil stránku parsovani.html. Zdrojový kód:

Použití inteligentních značek s informačními službami

Programujeme v softwaru Statistica

Soukromá střední odborná škola Frýdek-Místek, s.r.o. VY_32_INOVACE_79_IVT_MSOFFICE_19_Word

DUM 06 téma: Tvorba makra pomocí VBA

Microsoft Word základní

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access složitější konverze dat Ing. Kotásek Jaroslav

Pokud Windows 8 nemáte, můžete si situaci nasimulovat i ve Windows 7 a starších.

Microsoft Office Outlook 2003 s aplikací Business Contact Manager

10 Algoritmizace Příklad 2 Word 2007/ VBA

OBSAH. Word. První spuštění a hlavní obrazovka Wordu 3 Základní nastavení Wordu 6 Kontrola pravopisu a mluvnice 8 Nastavení ukládání dokumentu 12

Hromadný / Newsletter

1. Obsah. 2. Úvod. 1. Obsah Úvod Přihlášení Doručená pošta Nevyžádaná pošta Správa složek...

8 Makra Příklad 4 Excel 2007

Obsahy kurzů MS Office

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75

Microsoft Office. Word hromadná korespondence

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

24 Uživatelské výběry

Kurz Databáze. Obsah. Návrh databáze E-R model. Datová analýza, tabulky a vazby. Doc. Ing. Radim Farana, CSc.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Kurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.

MS Outlook Web Access Nastavení pravidel pro předávání pošty na Google

Outlook David Procházka. Vydala Grada Publishing, a.s. U Průhonu 22, Praha 7 jako svou publikaci

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

ZŠ ÚnO, Bratří Čapků 1332

VBA: VYTVOŘENÍ OBJEKTU GRAF (CHART) Deklarace proměnné typu Chart. Pro vytvoření nového grafu použijeme kolekci ChartObjects a její metodu Add.

Hromadná korespondence

Kontakty (Lidé) OKNO KONTAKTY (LIDÉ) Seznam kontaktů najdeme v sekci Lidé nalevo ve spodní části Outlooku mezi nabídkami Pošta, Kalendář a Úkoly.

Excel Board příprava. ProExcel.cz Excel Board výuková a prezentační tabule pro Excel 1

Microsoft Office. Excel ověření dat

1.7 WORD - hromadná korespondence

Dialog Vzhled stránky

Vytvoření.NET komponenty (DLL) ve Visual Studiu

Softwarový program Aplikace pro detekci rizikových zadavatelů (ADRZ)

V praxi je běžné, že se ovlivňuje více prvků navzájem. Tady už si s jednou globální proměnnou nevystačíme.

Tabulka aneb Seznam čili ListObject

Star Trek Do temnoty (infografika na panelu)

Úvod do systému

Hromadná korespondence

Výuka IVT na 1. stupni

Kapitola 12: Aplikace Excelu Evidence zájezdů cestovní kanceláře

Hromadná korespondence

II. Elektronická pošta

Sklad v Excelu OBSAH 2/11

Zprávy: Pošta. 1. Spuštění modulu Zprávy. 2. Popis prostředí a ovládacích prvků modulu Zprávy

CZ.1.07/1.5.00/

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Cvičení 7: Delphi objekty CheckedBox, Radio- Button, EditBox

Flexi uživatelská příručka verze 2.1

Registrační číslo projektu: CZ.1.07/1.5.00/ Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce:

'============================================================== Data\Priklady\04_Zpracovani_dat\ ' Název souboru 04_01_Comparison.

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Transkript:

Jak na propojení Excelu s Outlookem a proč vlastně? Po článku Jak na propojení Excelu s Wordem je další na řadě poštovní aplikace. Na čtyřech příkladech si ukážeme, čím si tyto dvě aplikace z balíčku Microsoft Office mohou být užitečné. Hned na začátku něco, co sám potřebuji velmi často seznam e-mailových adres, které se potulují v mém Outlooku. 'Tools / References / Microsoft Outlook xx.x Object Library Private Sub OutlookNacistAdresyZAdresare() Dim objoutlook As Object Dim objaddresslist As Object Dim objaddressentry As Object Dim i As Long Dim lngpocetpolozek As Long Dim arradresy() Set objoutlook = CreateObject("Outlook.Application") Set objaddresslist = objoutlook.session.addresslists("kontakty") Application.ScreenUpdating = False 'počet položek v adresáři lngpocetpolozek = objaddresslist.addressentries.count 'dimenzování pole ReDim arradresy(1 To lngpocetpolozek, 1 To 2) 'prokaždý záznam v adresáři For Each objaddressentry In objaddresslist.addressentries 'počítadlo i = i + 1 'jméno arradresy(i, 1) = objaddressentry.name 'adresa Excelplus.NET 1

arradresy(i, 2) = objaddressentry.address 'Microsoft Exchange 'Set objaddressentrydetail = objaddressentry.getexchangeuser Next objaddressentry 'vložení adres do listu wshadresy.cells(1).resize(lngpocetpolozek, 2) = arradresy Application.ScreenUpdating = True Set objaddresslist = Nothing Set objoutlook = Nothing End Sub Pokud jsou vaše kontakty uloženy v rámci Exchange, detail kontaktů najdete pod objektem objaddressentrydetail (PropertyAccessor, GetProperty, schema a Microsoft Exchange Property Tags). To není můj případ a tak není jednoduché se dostat k jiným informacích, než je jméno a adresa. Uvedená procedura má i další háček. Outlook není dostatečně aktivní a ani nemotivuje uživatele v tom, aby odesílatele přidávali do svých adresářů. Takže v momentě, kdy chcete projít vaše kontakty, je v adresáři jednoduše nemáte. Proto nabízím i verzi, která vytahá e-maily z doručených zpráv. 'Tools / References / Microsoft Outlook xx.x Object Library Sub OutlookNacistAdresyZDorucenychMailu() Dim i As Long Dim lngpocetpolozek As Long Dim arradresy() Dim objoutlook As Object Dim objnamespace As Object Dim objfolder As Object Dim objitem As Object Set objoutlook = New Outlook.Application Excelplus.NET 2

Set objnamespace = objoutlook.getnamespace("mapi") 'olfolderinbox... 6 Set objfolder = objnamespace.getdefaultfolder(olfolderinbox) 'počet položek v adresáři lngpocetpolozek = objfolder.items.count 'dimenzování pole ReDim arradresy(1 To lngpocetpolozek, 1 To 1) For Each objitem In objfolder.items 'je položka typu e-mail? 'olmail... 43 If objitem.class = olmail Then 'počítadlo i = i + 1 'přidání adresy odesílatele do pole arradresy(i, 1) = objitem.senderemailaddress End If Next objitem Application.ScreenUpdating = False With wshadresy 'vložení adres do listu.cells(1).resize(lngpocetpolozek, 1) = arradresy 'odstranění duplicit.range("a:a").removeduplicates Columns:=1, Header:=xlNo End With 'setřídění listu A-Z With wshadresy.sort.sortfields.clear Excelplus.NET 3

.SortFields.Add Key:=Range("A1"), SortOn:=xlSortOnValues, _ Order:=xlAscending, DataOption:=xlSortNormal.SetRange Range("A:A").Header = xlguess.matchcase = False.Orientation = xltoptobottom.sortmethod = xlpinyin.apply End With Application.ScreenUpdating = True 'odstranění proměnných z paměti Set objfolder = Nothing Set objnamespace = Nothing Set objoutlook = Nothing End Sub Po převzetí adres je samozřejmě potřeba řešit duplicity a není na škodu si adresy abecedně seřadit. I tak vám ještě zůstane trocha ruční práce spam, který prošel, no reply adresy apod. A hodit se vám může i tip na zřetězení. Postačí prostý odkaz na oblast vzorcem, stisk F9 (dojde k nahrazení adresy oblasti za hodnoty) a zbavení se drobného balastu. Položky oddělené středníky lze rovnou aplikovat ve zprávě Outlooku. První adresu věnujte políčku Komu a ostatní umístěte do skryté kopie (tlačítko Kopie a v otevřeném dialogu políčko Skrytá). Hromadné e-maily prosím rozesílejte jen v rozumné míře Zřetězení e-mailových adres pro hromadnou korespondenci Přitvrdíme. Co si třeba projít všechny zprávy a vypsat jen takové, které obsahují v předmětu slovo Excelplus.NET 4

Excel? 'Tools / References / Microsoft Outlook xx.x Object Library Sub OutlookNacistZpravyDlePredmetu() Dim i As Long Dim lngpocetpolozek As Long Dim arrpoledata() Dim objoutlook As Object Dim objnamespace As Object Dim objfolder As Object Dim objitem As Object Set objoutlook = New Outlook.Application Set objnamespace = objoutlook.getnamespace("mapi") 'olfolderinbox... 6 Set objfolder = objnamespace.getdefaultfolder(olfolderinbox) 'aktivace patřičného listu wshzpravy.activate 'počet položek v adresáři lngpocetpolozek = objfolder.items.count 'dimenzování pole ReDim arrpoledata(1 To lngpocetpolozek, 1 To 4) For Each objitem In objfolder.items 'je položka typu e-mail 'a obsahuje předmět slovo "Excel"? 'olmail... 43 If (objitem.class = olmail) And (objitem.subject Like "*Excel*") Then 'počítadlo i = i + 1 Excelplus.NET 5

'přidání informací do pole 'čas doručení arrpoledata(i, 1) = objitem.receivedtime 'jméno arrpoledata(i, 2) = objitem.sendername 'e-mail arrpoledata(i, 3) = objitem.senderemailaddress 'předmět zprávy arrpoledata(i, 4) = objitem.subject 'obsah 'arrpoledata(i, 5) = objitem.body 'kopie CC, BCC 'arrpoledata(i, 6) = objitem.cc End If Next objitem 'vložení informací do listu wshzpravy.cells(1).resize(lngpocetpolozek, 4) = arrpoledata 'odstranění proměnných z paměti Set objfolder = Nothing Set objnamespace = Nothing Set objoutlook = Nothing End Sub Něco praktičtějšího? Tak projdeme všechny nepřečtené zprávy, roztřídíme je a uložíme přílohy do složky podle odesílatele. 'Tools / References / Microsoft Outlook xx.x Object Library Private Const cstrcesta As String = "D:\Test\" Excelplus.NET 6

Sub OutlookUlozeniPrilohDleOdesilatele() Dim cstrcestapriloha As String Dim objoutlook As Object Dim objnamespace As Object Dim objfolderinbox As Object Dim objfolderdeleteditems As Object Dim objitem As Object Set objoutlook = New Outlook.Application Set objnamespace = objoutlook.getnamespace("mapi") 'olfolderinbox... 6, olfolderdeleteditems... 3 Set objfolderinbox = objnamespace.getdefaultfolder(olfolderinbox) Set objfolderdeleteditems = _ objnamespace.getdefaultfolder(olfolderdeleteditems) 'pro každou položku v adresáři For Each objitem In objfolderinbox.items 'je zpráva doposud nepřečtená? If objitem.unread Then With objitem.attachments 'existuje příloha? If.Count > Then 'pro všechny přílohy For i = 1 To.Count 'cstrcesta ke složce odesílatele cstrcestapriloha = cstrcesta & objitem.sendername & "\" 'vytvoření (neexistující) složky On Error Resume Next MkDir cstrcestapriloha Excelplus.NET 7

'uložení přílohy.item(i).saveasfile (cstrcestapriloha &.Item(i).Filename) Jak na propojení Excelu s Outlookem Next i End If End With 'nastavení atributu přečtené zprávy 'objitem.unread = False 'přesun zprávy do složky Odstraněná pošta 'objitem.move (objfolderdeleteditems) 'odstranění zprávy 'objitem.delete End If Next objitem 'ukončení seance 'objoutlook.quit End Sub Všechny dosavadní příklady fungovaly ve směru z Outlooku do Excelu. Poslední úloha bude opačná. Ze seznamu úkolů v Excelu vytvoříme úkol/událost v Outlooku. Níže uvedená procedura je jiná ještě v jedné věci. Ukazuje druhý způsob, jak se odkázat na aplikaci Outlook bez nutnosti reference (metoda CreateObject). Zatímco v předchozích ukázkách s referencemi jsme si mohli dovolit používat konstanty Outlooku a deklarovat objekty i přímo a nejen jako obecný Object, zde to možné není. Sub OutlookVytvoritUkolUdalost() Propojení Excel Outlook událost Excelplus.NET 8

Dim objoutlook As Object Dim objtaskitem As Object Dim objappointmentitem As Object Dim intradek As Integer 'aktivace patřičného listu wshudalosti.activate 'volba datového řádku intradek = 2 'vytvoření instance aplikace Outlook Set objoutlook = CreateObject("Outlook.Application") 'úkol... oltaskitem... 3 'Set objtaskitem = objoutlook.createitem(3) 'With objtaskitem '.Subject = Cells(intRadek, 1).Text '.StartDate = Cells(intRadek, 2).Value '.DueDate = Cells(intRadek, 3).Value '.ReminderTime = Cells(intRadek, 4).Value '.Body = Cells(intRadek, 5).Text '.Save 'End With 'událost... olappointmentitem...1 Set objappointmentitem = objoutlook.createitem(1) With objappointmentitem 'předmět.subject = Cells(intRadek, 1).Text 'počáteční datum.start = Cells(intRadek, 2).Value 'konečné datum.end = Cells(intRadek, 3).Value + 1 'celodenní událost Excelplus.NET 9

.AllDayEvent = True 'upozornění v minutách před poč. datem.reminderminutesbeforestart = (Cells(intRadek, 2).Value - _ Cells(intRadek, 4).Value) * 1440 'obsah.body = Cells(intRadek, 5).Text 'místo.location = Cells(intRadek, 6).Text 'uložení.save End With 'odstranění objektů z paměti Set objtaskitem = Nothing Set objappointmentitem = Nothing Set objoutlook = Nothing End Sub Excelplus.NET 10

Propojení Excel Outlook událost Chcete-li si nastudovat objektový model Outlooku, můžete zavítat na stránky Object model (Outlook VBA reference). Pokud vás to navnadilo podívat se na Outlook blíž, pak jen dobře. Uvědomte si, že i Outlook má události a vy můžete po příchodu zprávy automaticky uložit přílohu a mail zpracovat Příloha: excel_propojeni_outlook.zip Excelplus.NET 11