1 / 43

VBA Outlook II

VBA Outlook II. Sessie B2 Floris M. Kleijne. Onderwerpen sessie B1. . . . . . . . . . 3. Itembalken aanpassen. Werkbalken aanpassen=Office-standaard Máár… Alle soorten items zelfde CommandBars Aanpassingen zullen vaak specifiek zijn voor Mail óf Contact óf Note etc.

Download Presentation

VBA Outlook II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VBA Outlook II Sessie B2 Floris M. Kleijne

  2. Onderwerpen sessie B1         

  3. 3. Itembalken aanpassen • Werkbalken aanpassen=Office-standaard • Máár… • Alle soorten items zelfde CommandBars • Aanpassingen zullen vaak specifiek zijn voor Mail óf Contact óf Note etc. • Dus… code! • Om eigen balken te tonen en verbergen • Afhankelijk van welk item wordt weergegeven

  4. 3. Itembalken aanpassen • Objecten en technieken • Application en Session • Explorer en Inspector • Events • CommandBars    

  5. Application en Session

  6. Application en Session Dim nsp As Outlook.NameSpace ' "Session" was betere naam geweest!! Set nsp = Application.GetNameSpace("MAPI") Set nsp = Application.Session ' (sinds Outlook 98)

  7. Application en Session Application.ActiveExplorer 'Het applicatievenster Application.CreateItem(olAppointmentItem) 'Maak een nieuwe afspraak nsp.GetDefaultFolder(olFolderContacts) 'Folder Contactpersonen nsp.PickFolder 'Laat de gebruiker een folder kiezen

  8. Explorer en Inspector • Explorer = applicatie-venster • Inspector = venster van geopend item

  9. Explorer en Inspector Set xpl = ActiveExplorer xpl.Selection.Items(1).Display Set ins = ActiveInspector MsgBox ins.CurrentItem.FullName

  10. Events • Wanneer moet een bepaalde macro worden uitgevoerd? • Bij opstarten Outlook • Bij binnenkomst nieuwe mail • Als er een itemvenster (Inspector) wordt geopend • Bij toevoegen Snelkoppeling aan Outlookbalk • Het juiste Event voor elk moment!

  11. Events • Standaard alleen Application-events • Andere Events beschikbaar maken • Variabele WithEvents declareren • Initialiseren in Application_Startup • Kan alléén in Class module • ThisOutlookSession is óók een class module

  12. Events Private WithEvents insps As Outlook.Inspectors Sub Application_Startup() Set insps = Application.Inspectors End Sub Sub insps_NewInspector(Byval ins As Inspector) ' Item geopend, doe er iets mee ' Bijv. werkbalken aanpassen ' afhankelijk van het sóórt item in de Inspector End Sub

  13. CommandBars • Balken en knoppen maken(zelfde als andere Office-applicaties): ' Werkbalk maken Dim cmb As Office.CommandBar Set cmb = …CommandBars.Add(…) cmb.Visible = True 'Knop op werkbalk maken Dim btn As Office.CommandBarButton Set btn = cmb.Controls.Add(…) btn.Caption = "Mijn macro uitvoeren" btn.OnAction = "MijnMacro"

  14. CommandBars ActiveExplorer.CommandBars ActiveInspector.CommandBars

  15. CommandBars • ActiveInspector.CommandBars = alle CommandBars van alle Inspectors • Dus MailItem, AppointmentItem, ContactItem etc. • Alle Inspector-vensters zelfde balken! • Voeg balk toe aan e-mail-Inspector werkbalk ook in Contact of Appointment • Code schrijven om dit te verhinderen! • Zie Casus 3

  16. Bedankt voor uw aandacht! • www.nationaleofficedag.com • Downloaden: • Deze presentatie • Voorbeeldcode (alle casi!) • Overige documentatie

  17. 6. Meldingen nieuwe e-mail • Tijdelijk automatisch melding bij nieuwe e-mail in bepaalde mappen • Bijvoorbeeld tijdens project • Klant wil makkelijk waarschuwingen aanzetten voor gekozen map (en weer makkelijk uitzetten) • Regels en Waarschuwingen te bewerkelijk • Dus graag VBA-oplossing • NB: Dus combi met autom. sorteren(casus

  18. 6. Meldingen nieuwe e-mail • Makkelijk beheer Meldingen-mappen:Outlook-balk / snelkoppelingen • Automatische meldingen voorelke map die daar een snelkoppeling heeft • (Minstens) twéé mogelijke benaderingen • …

  19. 6. Meldingen nieuwe e-mail • Objecten en technieken • Application en Session • Explorer en Inspector • Folders • Items • Events • De Outlook-balk      

  20. Folders Dim fld As Outlook.MAPIFolder Set fld = Application.Session. _Folders("Persoonlijke mappen") Set fld = fld.Folders("Inbox") 'etc 'of Set fld = Application.Session. _GetDefaultFolder(olFolderInbox)

  21. Folders • Recursie!! Public Sub DoorloopSubFolders(ByRef Map _As MAPIFolder) Dim fld As Outlook.MAPIFolder 'Doe eerst "iets" met de Map For Each fld In Map.Folders Call DoorloopSubFolders(fld) Next fld End Sub

  22. Items • Alles wat zich in een Outlook-folder kan bevinden • E-mail, Contactpersoon, Notitie etc. etc. • Gemengde inhoud van Folders • Bijv. Email en Vergaderverzoek • Bijv. Contactpersoon en Distributielijst • Item datatype is Object 

  23. Items • Alle items doorlopen!! Public Sub DoorloopItems(ByRef Map As MAPIFolder) Dim itm As Object Dim eml As Outlook.MailItem For Each itm In Map.Items IfTypeOf itm Is Outlook.MailItem Then Set eml = itm 'Doe iets met het gevonden mailtje End If Next itm End Sub

  24. Items • Nieuw Item maken Dim con As Outlook.ContactItem Set con = Application.CreateItem(olContactItem) With con .FirstName = "Jan" .LastName = "Jansen" .Display .Save End With

  25. De Outlook-balk Dim xpl As Explorer Dim pne As OutlookBarPane Dim str As OutlookBarStorage Dim grp As OutlookBarGroup Dim sct As OutlookBarShortCut Set xpl = ActiveExplorer Set pne = xpl.Panes("OutlookBar") Set str = pne.Contents Set grp = str.Groups("Meldingen") For Each sct In grp.Shortcuts 'Doe iets met elke Shortcut Next sct

  26. 7. Attachments opslaan • PST-bestanden groeien héél groot • Eén v/d redenen: bijlagen in PST-bestand • Deel v/d oplossing: • Bijlagen extern opslaan • Verwijderen uit e-mail • Automatiseren!

  27. 7. Attachments opslaan • Wanneer: • Automatisch na versturen e-mail met bijlage • Handmatig (knop) bij ontvangen e-mail (zie casus 3) • Proces: • Laat gebruiker bijlagen opslaan • Verwijder alle bijlagen uit de e-mail • Voeg een lijst toe van de verwijderde bijlagen

  28. 7. Attachments opslaan • Objecten en technieken • Application en Session • Explorer en Inspector • Folders • Items • Events • Gaten in het objectmodel      

  29. Gaten in het objectmodel • Access, Excel, Word: objectmodel vrijwel 1:1 met applicatiefuncties • Outlook: objectmodel heel beperkt • Géén macrorecorder • Vele UI-functies niet beschikbaar als methods of properties • Workaround: knop uitvoeren! • Iets beter dan SendKeys

  30. Gaten in het objectmodel ' Werkbalkknop vinden en uitvoeren Const BIJLAGEN_OPSLAAN_ID = 3167 Dim cbs As CommandBars Dim ctl As CommandBarControl Set cbs = ActiveInspector.CommandBars Set ctl = cbs.FindControl(ID:=BIJLAGEN_OPSLAAN_ID) If Not ctl Is Nothing Then oControl.Execute

  31. 1. Basiskennis VBA Outlook • Objecten en technieken • Application en Session • Explorer en Inspector • Folders • Items • Events • Gaten in het objectmodel      

  32. 5. Standaardafspraken • Regelmatig dezelfde afspraak op verschillende dagen • Bijv Teamoverleg altijd om 10:30 in kamer 4.14, maar steeds op andere dag • Bijv. Etentje altijd om 19:30, maar steeds op andere dag en lokatie • Nieuwe afspraak maken op geselecteerde dag • Standaardwaardes alvast invullen

  33. 5. Standaardafspraken • Objecten en technieken • Application en Session • Items  

  34. 4. Herinnering bijlagen • Bij verzenden e-mail: • Staat er woord in tekst dat op bijlage wijst? • Zo ja, zijn er bijlagen bijgesloten? • Zo nee, vraag dan aan gebruiker of dat klopt • Zo nee, laat gebruiker bijlagen kiezen • Wannéér moet dit gebeuren  Event • Wát moet er precies gebeuren

  35. 4. Herinnering bijlagen • Objecten en technieken • Application en Session • Explorer en Inspector • Folders • Items • Events • Gaten in het objectmodel      

  36. 2. Applicatiebalken aanpassen • Objecten en technieken • Application en Session • Explorer en Inspector • CommandBars   

  37. 9. Contactpersonen via VBA • Contactpersonen en ActiveSync • Synchroniseren tussen Outlook en PDA • ActiveSync verwisselt soms thuis- en werkadres • Outlook zet werkadres standaard in lijstSoms is echter privé-adres gewenst

  38. 9. Contactpersonen via VBA • Objecten en technieken • Application en Session • Items  

  39. 8. Mail autom.sorteren • Ontvangen e-mail automatisch sorteren • Van bepaalde afzenders altijd sorteren • Van andere afzenders nooit sorteren • Sorteren in map met naam afzender • Moet blijven werken, ook als mapindeling wijzigt (maar naam map hetzelfde)

  40. 8. Mail autom.sorteren • Proces: nieuwe e-mail komt binnen • Controleer automatisch: • Is afzender uitgesloten van automatisch sorteren? • Heeft afzender al (ergens) een sorteermap? • Vraag gebruiker: sorteren? • Ja  maak map op standaardplek • Nee  registreer afzender als uitzondering

  41. 8. Mail autom.sorteren • Objecten en technieken • Application en Session • Explorer en Inspector • Folders • Items • Events     

More Related