xltoday.net

EXCEL 2007 TABLAS Y GRAFICOS


Importar datos de Outlook a Excel

Con VBA de Excel podemos contactar con Outlook para devolver datos. En este ejemplo vamos a importar algunos datos de los Contactos.

Objetos utilizados

Para contactar con Outlook desde Excel podemos utilizar el objeto GetNameSpace de la MAPI - Messaging Application Programming Interface.

Luego, el método GetDefaultFolder nos deja acceder a las carpetas de Outlook, por ejemplo el de los Contactos.

ParámetroCarpeta
3Deleted Items (Elementos elimindos)
4Outbox (Bandeja de salida)
5Sent Items (Elementos enviados)
6Inbox (Bandeja de entrada)
9Calendar (Calendario)
10Contacts (Contactos)
11Journal (Diario)
12Notes (Notas)
13Tasks (Tareas)
16Drafts (Borrador)

El código


Sub ImportarContactos() Dim olApp As Outlook.Application Dim olContacts As Outlook.MAPIFolder Dim olContact As Outlook.ContactItem Dim i As Integer Set olApp = New Outlook.Application Set olContacts = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts) 'rotulos Cells(1, 1) = "Nombre" Cells(1, 2) = "E-mail" Cells(1, 3) = "Título" Cells(1, 4) = "Empresa" Cells(1, 5) = "Tel (casa)" Cells(1, 6) = "Tel (móbil)" Cells(1, 7) = "Tel (trabajo)" Cells(1, 8) = "Fax (trabajo)" Cells(1, 9) = "Dir. (empresa)" Cells(1, 10) = "Postal (empresa)" Cells(1, 11) = "Ciudad (empresa)" Cells(1, 12) = "País (empresa)" Cells(1, 13) = "Dir. (casa)" Cells(1, 14) = "Postal (casa)" Cells(1, 15) = "Ciudad (casa)" Cells(1, 16) = "País (Casa)" 'importar contact items For i = 2 To olContacts.Items.Count If TypeOf olContacts.Items.Item(i) Is _Outlook.ContactItem Then Set olContact = olContacts.Items.Item(i) Cells(i, 1) = olContact.FullName Cells(i, 2) = olContact.Email1Address Cells(i, 3) = olContact.JobTitle Cells(i, 4) = olContact.CompanyName Cells(i, 5) = olContact.HomeTelephoneNumber Cells(i, 6) = olContact.MobileTelephoneNumber Cells(i, 7) = olContact.BusinessTelephoneNumber Cells(i, 8) = olContact.BusinessFaxNumber Cells(i, 9) = olContact.BusinessAddressStreet Cells(i, 10) = olContact.BusinessAddressPostalCode Cells(i, 11) = olContact.BusinessAddressCity Cells(i, 12) = olContact.BusinessAddressCountry Cells(i, 13) = olContact.HomeAddressStreet Cells(i, 14) = olContact.HomeAddressPostalCode Cells(i, 15) = olContact.HomeAddressCity Cells(i, 16) = olContact.HomeAddressCountry End If Next 'eliminar variables de los objetos Set olContact = Nothing Set olContacts = Nothing Set olApp = Nothing 'ordenar lista por Nombre Cells.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess End Sub