Î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:\.