Înțelegerea metodelor generale de lucru cu obiectele Outlook
Multe dintre obiectele din Outlook utilizează metodele descrise în secțiunile următoare. Veți vedea exemple scurte care vă arată să utilizați metodele, precum și alte exemple privind tipurile individuale de obiecte - mesaje de e-mail, rezervări, persoane de contact, activități și așa mai departe.
Folosirea metodei Display
Pentru a deschide un element într-o fereastră Inspector, utilizați metoda Display. Sintaxa este următoarea:
expression.Display(Modal)
Aici, expression este o expresie necesară care returnează tipul de obiect pe care doriți să îl afișați - de exemplu, un obiect ContactItem sau un obiect MailItem. Modal este un argument opțional de tip Variant pe care îl puteți seta la True pentru a face fereastra modală. O fereastră este în mod implicit modeless sau devine modeless dacă setați Modal la False. Făcând fereastra de tip Modal înseamnă că utilizatorii trebuie să închidă fereastra înainte de a putea lucra cu o altă fereastră.
Rețineți că argumentul Modal nu este disponibil pentru obiecte Explorer și MAPIFolder.
De exemplu, următoarea instrucțiune utilizează metoda Display pentru a afișa Inbox:
Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Display
Folosirea metodei Close
Pentru a închide o fereastră, utilizați metoda Close. Sintaxa este următoarea:
expression .Close(SaveMode)
Aici, expression este o expresie necesară care returnează obiectul pe care doriți să îl închideți. SaveMode este un argument obligatoriu care specifică dacă se salvează (olSave), dacă se anulează modificările (olDiscard), sau care solicită utilizatorului să decidă dacă salvează conținutul (olPromptForSave).
Următorul exemplu închide fereastra Inspectorul activă și salvează orice modificări ale conținutului său:
ActiveInspector.Close SaveMode:=olSave
Rețineți că acest cod necesită ca să fie deschisă o fereastră Inspector. A se vedea avertismentul de mai sus din secțiunea intitulată "Lucrul cu Inspectorul activ", de pe pagina Lucrul cu obiectul Application.
Programare practică: Colectia Items nu este sortată
De multe ori trebuie să sortați și să căutați date. Fiți avertizat că numerele de index din colecția Items a persoanelor de contact nu sunt ordonate în niciun fel. Colecția nu este ordonată alfabetic și nici în orice alt mod (după data introducerii contactului, a modificării sau prin orice altă comandă). Folosind metodele Delete, Display, sau alte metode cu colectia Items se accesează un element aleatoriu. În exemplul anterior, Items(1) nu va fi aproape sigur primul contact din lista de persoane de contact. Sau, după cum spune sistemul de ajutor online Outlook, „Nu garantăm că elementele din obiectul colecție Item sunt ordonate în vreun fel.”
Cu toate acestea, aveți posibilitatea să sortați elementele, dacă doriți, prin scrierea de cod care le sortează. Apoi, puteți căuta în lista sortată care a fost generată. Procedați astfel utilizând metoda de sortare, după cum se poate vedea în exemplul următor. Aceste comenzi sortează contactele în ordine alfabetică după câmpul Full Nume din caseta de dialog Contacts. Opțional, puteți sorta după data scadenței (pentru sarcini), după numele de familie (pentru persoane de contact) și multe alte moduri.
Sub SortContacts()
Dim strNames As String
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.Folder
Dim myItem As Outlook.ContactItem
Dim myItems As Outlook.Items
Set myNameSpace = Application.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderContacts)
Set myItems = myFolder.Items myItems.Sort "[FullName]", False
For Each myltem In myltems
strNames = strNames & ", " & myltem.FullName
Next myltem
MsgBox strNames
End Sub
Observați că ați putea folosi, de asemenea, bucla For Each...Next pentru a căuta un anumit element în colecția de elemente.
Alternativ, utilizați metoda AdvancedSearch a obiectului Application, așa este descris mai târziu în secțiunea Căutarea elementelor din acest capitol.
Folosirea metodei PrintOut
Pentru a imprima un element, utilizați metoda PrintOut. Această metodă nu are argumente. Următorul exemplu imprimă elementul cu numărul de index 1 din Inbox:
Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) _
.Items(1).PrintOut
Folosirea metodei Save
Pentru a salva un element, utilizați metoda Save. Această metodă nu are argumente. Următorul exemplu creează o activitate nouă; îi atribuie un subiect, data de începere (astăzi) și data scadenței (peste o săptămână); dezactivează mementoul pentru activitate; și apoi o salvează:
Dim myTask As Taskltem
Set myTask = Application.CreateItem(ItemType:=olTaskItem)
With myTask
.Subject = "Arrange Review Meeting"
.StartDate = Date
.DueDate = Date + 7
.ReminderSet = False
.Save
End With
Acest element va apărea în lista ToDo a secțiunii MyTasks din Outlook Tasks.
Folosirea metodei SaveAs
Pentru a salva un element ca fișier separat, utilizați metoda SaveAs. Sintaxa este următoarea:
expression.SaveAs(Path, Type)
Aici, expression este o expresie necesară care returnează obiectul de salvat. Path este un argument necesar de tip String care specifică calea și numele fișierului sub care se salvează fișierul. Type este un argument opțional de tip Variant pe care îl puteți utiliza pentru a controla tipul de fișier utilizat pentru acel fișier, după cum se arată în tabelul următor.
Următorul exemplu salvează mesajul deschis în fereastra activă Inspector. Deci, înainte de a testa acest exemplu, asigurați-vă că s-a făcut dublu-clic pe un mesaj care este deschis în propria fereastră separat de fereastra principală Outlook. Rețineți că codul care implică fereastra Inspector activă necesită ca să fie deschisă o fereastra Inspector. A se vedea avertismentul de mai sus și modalitatea de a capta eroarea, în secțiunea intitulată "Lucrul cu inspectorul activ", de pe pagina Lucrul cu obiectul Application
Dacă proprietatea IsWordMail a obiectului ActiveInspector returnează True, exemplul salvează mesajul ca fișier .doc; dacă proprietatea IsWordMail returnează False, exemplul salvează mesajul ca fișier .rtf. Dacă nu este activă nicio fereastră Inspector, exemplul afișează o casetă de mesaj care anunță utilizatorul despre acest lucru:
If TypeName(ActiveInspector) = "Nothing" Then
MsgBox "Aceasta macrocomanda nu poate rula pentru ca " & _
"nu este nicio fereastra activa.", vbOKOnly, "Macro nu poate rula"
End
Else
If ActiveInspector.IsWordMail Then
ActiveInspector.CurrentItem.SaveAs "c:\temp\message.doc"
Else
ActiveInspector.CurrentItem.SaveAs "c:\temp\message.rtf"
End If
End If
Pentru a testa acest exemplu, asigurați-vă că există un folder \temp pe unitatea C:\.