Compartir a través de


Enumerar, buscar y filtrar elementos en una carpeta

El modelo de objetos de Outlook proporciona varios puntos de entrada que permiten enumerar, buscar y filtrar los elementos de una carpeta.

Enumerar elementos

Los objetos Items, Table y Selection son compatibles con la enumeración de elementos de una carpeta. Sin embargo, existen escenarios en los que uno de ellos es más apropiado que los otros dos.

Puede obtener una colección Items llamando a Folder.Items, que devuelve los elementos de la carpeta. Cada objeto de elemento de la colección está completo con todas sus propiedades explícitas integradas y personalizadas, y es compatible con operaciones de lectura y escritura. La colección Items también es compatible con filtros y eventos que se desencadenan cuando se agrega, cambia o quita un elemento de la colección.

Use Folder.GetTable o Search.GetTable para obtener un objeto Table que represente un conjunto de elementos en una carpeta o carpeta de búsqueda. En ambos casos, puede especificar un filtro para obtener un subconjunto de los elementos de la carpeta o, si no especifica ningún filtro, obtener todos los elementos de la carpeta. De manera predeterminada, todos los elementos del objeto Table devuelto contienen únicamente un subconjunto predeterminado de sus propiedades.

Puede considerar cada fila del objeto Table como un elemento de la carpeta, donde cada columna es una propiedad del elemento, y el objeto Table como un conjunto de filas de tamaño reducido en memoria que permite realizar con rapidez la enumeración y el filtrado de los elementos de la carpeta. Aunque las adiciones y eliminaciones de la carpeta subyacente se reflejan en las filas del objeto Table, dicho objeto Table no es compatible con ningún evento para agregar, cambiar o quitar filas.

Si requiere un objeto de escritura de la fila Table, obtenga el identificador de entrada para dicha fila de la columna del identificador de entrada predeterminada en el objeto Table y luego use el método GetItemFromID del objeto NameSpace para obtener un elemento completo, como MailItem o ContactItem, que sea compatible con operaciones de lectura y escritura. Para obtener más información sobre las columnas predeterminadas de una tabla, vea propiedades de efault mostradas en un objeto Table.

El objeto Selection es compatible con la enumeración de elementos seleccionados actualmente en un explorador por el usuario. Puesto que el explorador muestra el contenido de una carpeta, el objeto Selection permite enumerar los elementos contenidos en esa carpeta de acuerdo con la selección del usuario.

Nota Una carpeta de Outlook puede contener elementos heterogéneos. Por ejemplo, la carpeta Contactos es compatible de forma predeterminada con la creación de elementos de contacto y de lista de distribución. Dado que los objetos Items, Table y Selection encapsulan elementos en una carpeta o carpeta de búsqueda, los elementos de ellos no tienen necesariamente la misma clase de mensaje. Al enumerar elementos de estas colecciones y estos objetos, es conveniente comprobar cuál es la clase de mensaje de cada elemento antes de tener acceso a las propiedades del elemento.

Buscar y filtrar elementos

Los objetos Items, Table, Application y View son compatibles con la búsqueda y el filtrado de elementos en una carpeta. En la tabla siguiente se describen y comparan estos puntos de entrada:

Punto de entrada Action Objeto del filtro de búsqueda Compatible con filtro Jet Compatible con filtro DASL Comentarios
Application.AdvancedSearch Establece los criterios para un objeto Search y devuelve el objeto Search. Search.Results especifica los resultados de la búsqueda. Search.Save actualiza una carpeta de búsqueda con los resultados de la búsqueda. Folder No
Folder.GetTable Devuelve un objeto Table de elementos de una carpeta según un filtro determinado. Folder El filtro Table no es compatible con algunas propiedades, lo que incluye propiedades binarias y contenidos de cuerpo HTML o RTF. Para obtener más información, vea Propiedades no compatibles en un objeto Table o un filtro Table.
Items.Find Busca el primer elemento que satisface el filtro especificado. Folder Yes No El filtro no es compatible con algunas propiedades, incluida Body. Para obtener más información, vea Items.Find.
Items.Restrict Filtra un conjunto determinado de elementos según las restricciones especificadas y devuelve otra colección Items. Folder El filtro no es compatible con algunas propiedades, como Body, por ejemplo. Para obtener más información, vea Items.Restrict.
Search.GetTable Devuelve un objeto Table de elementos de una carpeta de búsqueda según cualquier filtro derivado de Application.AdvancedSearch. Carpeta de búsqueda No Search.GetTable deriva su filtro del objeto Search (específicamente la propiedad Search.Filter ) devuelto desde Application.AdvancedSearch.
Table.Restrict Filtra las filas de la tabla indicada según un filtro especificado y devuelve otro objeto Table. Folder El filtro Table no es compatible con algunas propiedades, lo que incluye propiedades binarias y contenidos de cuerpo HTML o RTF. Para obtener más información, vea Propiedades no compatibles en un objeto Table o un filtro Table.
View.Filter Establece el filtro de una vista sin cambiar el código XML de la misma. Al establecer el filtro de una vista, solo se cambia la vista en la interfaz de usuario y no se produce una colección Items filtrada. Folder No
View.XML Obtiene o establece el código XML de una vista. La modificación del <nodo Filtro> cambia el filtro de la vista. Al establecer el XML de una vista, solo se cambia la vista en la interfaz de usuario y no se produce una colección Items filtrada. Folder No View.XML se va a dejar de utilizar. Para programar vistas, debe utilizarse el modelo del objeto View.

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.