ID do artigo: 180696 - Última revisão: segunda-feira, 12 de fevereiro de 2007 - Revisão: 2.2

OL97: Exemplos de programação para pastas e itens de referência

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

O modelo de objeto do Microsoft Outlook 97 é normalmente usado para acessar vários tipos de itens em pastas. Este artigo fornece uma visão geral dos vários métodos, propriedades e objetos que podem ser usados para se referir a itens do Outlook e pastas.

Este artigo resume os tópicos a seguir:
Referenciar pastas existentes
  • Método GetDefaultFolder
  • Objeto Folders
  • Propriedade pai
  • Método GetSharedDefaultFolder
  • Método GetFolderFromID
Criar e referenciar novas pastas
  • Método Folders.Add
Criar e referenciar novos itens >
  • Método CreateItem
  • Método Items.Add
  • Método CreateItemFromTemplate
Referenciar itens existentes
  • Usar itens (i) ou for each... Next
  • Uso de itens ("Este é o assunto")
  • Localizar método
  • Restringir o método

Mais Informações

Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita, incluindo, mas não se limitando às garantias implícitas de comercialização e/ou adequação a uma finalidade específica. Este artigo presume que você esteja familiarizado com a linguagem de programação demonstrada e as ferramentas usadas para criar e depurar procedimentos. Profissionais de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades específicas.
Se você não tenha muita experiência de programação, talvez queira em contato com um Microsoft Certified Partner ou Microsoft Advisory Services. Para obter mais informações, visite da Microsoft:

Microsoft Certified Partners - https://partner.microsoft.com/global/30000104 (https://partner.microsoft.com/global/30000104)

Comunicado de Microsoft Services - http://support.microsoft.com/gp/advisoryservice (http://support.microsoft.com/gp/advisoryservice)

Para obter mais informações sobre as opções de suporte estão disponíveis e sobre como entrar em contato com a Microsoft, visite o seguinte site: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS (http://support.microsoft.com/default.aspx?scid=fh;en-us;cntactms) Observação: O código do Visual Basic Scripting Edition (VBScript) deve usar o valor numérico das constantes definidas na biblioteca de objeto do Outlook. Você pode localizar uma listagem desses valores no arquivo de Ajuda de biblioteca de objeto do Microsoft Outlook (Vbaoutl.hlp) sob o tópico "Microsoft Outlook constantes".

Referenciar pastas existentes

Método GetDefaultFolder:

Pastas padrão são aquelas que estão no mesmo nível que a caixa de entrada que recebe mensagens de entrada. Se você tiver mais de uma caixa de entrada em seu perfil, pressionar as teclas CTRL+SHIFT + I sempre seleciona a caixa de entrada padrão. As pastas padrão são aquelas que a maioria dos usuários trabalhar com em uma base regular, como as pastas Calendário, contatos e tarefas. Você pode facilmente referir-se a essas pastas usando o método GetDefaultFolder. GetDefaultFolder tem um argumento, que é o tipo de pasta que você deseja se referir. Os exemplos a seguir atribuir a variável de objeto MinhaPasta a pasta padrão Contatos:
   ' Automation code example.
   Set ol = New Outlook.Application
   Set olns = ol.GetNameSpace("MAPI")
   Set MyFolder = olns.GetDefaultFolder(olFolderContacts)

   ' VBScript code example.
   Set olns = Item.Application.GetNameSpace("MAPI")
   Set MyFolder = olns.GetDefaultFolder(10)

				
pastas objeto: você pode usar o objeto Folders para fazer referência a qualquer pasta que está visível na lista de pasta do Outlook. Esse objeto é normalmente usado para se referir a uma pasta pública do Exchange ou qualquer outra pasta que não é uma pasta predefinida do Outlook.

Os exemplos a seguintes ilustram como para se referir a uma pasta pública chamada "Minha pasta pública". Observe que você normalmente iniciar na pasta superior e funciona sua forma até a pasta que você precisa fazer referência. Observe também que os nomes de pastas fazem distinção entre maiúsculas e minúsculas e devem corresponder exatamente os nomes que aparecem na lista de pasta do Outlook.
  ' Automation code example.
   Set ol = New Outlook.Application
   Set olns = ol.GetNameSpace("MAPI")
   Set MyFolder1 = olns.Folders("Public Folders")
   Set MyFolder2 = MyFolder1.Folders("All Public Folders")
   Set MyFolder3 = MyFolder2.Folders("My Public Folder")

   ' VBScript code example.
   Set olns = Item.Application.GetNameSpace("MAPI")
   Set MyFolder1 = olns.Folders("Public Folders")
   Set MyFolder2 = MyFolder1.Folders("All Public Folders")
   Set MyFolder3 = MyFolder2.Folders("My Public Folder")

				
os exemplos a seguintes ilustram como você pode se referir a uma pasta chamada "Tarefas de Business", que é uma subpasta da pasta padrão tarefas.
   ' Automation code example.
   Set ol = New Outlook.Application
   Set olns = ol.GetNameSpace("MAPI")
   Set MyTasksFolder = olns.GetDefaultFolder(olFolderTasks)
   Set MyFolder = MyTasksFolder.Folders("Business Tasks")

   ' VBScript code example.
   Set olns = Item.Application.GetNameSpace("MAPI")
   Set MyTasksFolder = olns.GetDefaultFolder(13)
   Set MyFolder = MyTasksFolder.Folders("Business Tasks")
				
propriedade pai:

Se você já tiver uma referência a uma pasta ou um item do Outlook, em seguida, você pode usar sua propriedade pai para criar uma referência para a pasta o item ou pasta está localizada em.

Os exemplos a seguir retornam o nome de uma pasta para um determinado item:
   ' Automation code example.
   Set ol = New Outlook.Application
   Set MyItem = ol.CreateItem(olMailItem) ' Create new item.
   MyItem.Save                            ' Save it to Inbox.
   Set MyFolder = MyItem.Parent           ' MyFolder = Inbox.

   ' VBScript code example.
   ' Returns the folder of the current item.
   Set MyFolder = Item.Parent
				
GetSharedDefaultFolder:

Você pode usar esse método se alguém tenha dado a você delegar permissões para uma das suas pastas padrão. Além disso, você deve ter já conectado para a pasta no Outlook clicando no menu Arquivo, clicando em Abrir pasta especial, e clicando em pasta do Exchange Server.

Para obter mais informações sobre como acessar as pastas de outras pessoas, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
160302  (http://support.microsoft.com/kb/160302/EN-US/ ) OL97: Como abrir o calendário da outra pessoa ou outra pasta
Depois que Outlook é configurado para usar outra pessoa pasta, GetSharedDefaultFolder método é usado da mesma maneira como GetDefaultFolder, exceto que você especificar um argumento adicional--o nome da pasta da outra pessoa você deseja referenciar. Este exemplo primeiro resolve nome da outra pessoa para verificar se ele é um nome válido que pode ser usado com o método GetSharedDefaultFolder.
   ' Automation code example.
   Set ol = New Outlook.Application
   Set olns = ol.GetNameSpace("MAPI")
   Set myRecipient = olns.CreateRecipient("John Smith")
   myRecipient.Resolve
   If myRecipient.Resolved Then

      Set JohnFolder = olns.GetSharedDefaultFolder _
         (myRecipient, olFolderContacts)
   End If

   ' VBScript code example.
   Set olns = Item.Application.GetNameSpace("MAPI")
   Set myRecipient = olns.CreateRecipient("John Smith")
   myRecipient.Resolve
   If myRecipient.Resolved Then
      Set JohnFolder = olns.GetSharedDefaultFolder _
         (myRecipient, 10)
    End If
				
GetFolderFromID:

Este método geralmente seria usado em soluções mais complexas onde uma solução mantém controle sobre a StoreID e EntryID de uma pasta para que ele pode ser referenciado rapidamente posteriormente.

Para obter mais informações sobre como usar o método GetFolderFromID, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
170991  (http://support.microsoft.com/kb/170991/EN-US/ ) OL97: Programação com EntryIDs, armazenamento e GetItemFromID

Criar e referenciar novas pastas

Método Folders.Add:

Usando o método Add no conjunto de pastas permite que você crie uma nova pasta. O primeiro argumento especifica o nome da pasta e o segundo argumento especifica o tipo da pasta. O exemplo a seguir adiciona uma pasta Business tarefas sob a pasta de tarefas padrão. Porque o tipo de pasta não for especificado, ele irá herdar o tipo da pasta pai.
   ' Automation code example.
   Set ol = New Outlook.Application
   Set olns = ol.GetNameSpace("MAPI")
   Set MyTasksFolder = olns.GetDefaultFolder(olFolderTasks)
   Set MyNewFolder = MyTasksFolder.Folders.Add("Business Tasks")

   ' VBScript code example.
   Set olns = Item.Application.GetNameSpace("MAPI")
   Set MyTasksFolder = olns.GetDefaultFolder(13)
   Set MyNewFolder = MyTasksFolder.Folders.Add("Business Tasks")
				

Criar e referenciar novos itens

Método CreateItem:

O método CreateItem cria um novo item do Outlook padrão. Se você precisar criar um item com base em um formulário personalizado que você criou, use o método Items.Add abaixo. O método CreateItem é convenientemente localizado fora do objeto aplicativo de nível superior no modelo de objeto do Outlook. O método tem apenas um argumento, uma constante indicando o tipo de item para criar.
   ' Automation code example.
   Set ol = New Outlook.Application
   Set MyTaskItem = ol.CreateItem(olTaskItem)
   MyTaskItem.Display

 ' VBScript code example.
   Set MyTasktem = Item.Application.CreateItem(13)
   MyTaskItem.Display
				
método Items.Add:

Usando o método Add na coleção Items permite que você criar um novo item com base em qualquer classe de mensagem, seja uma classe de mensagem do Outlook padrão como IPM.contato ou uma classe de mensagem para um formulário personalizado, como IPM.contato.MeuFormulário. Para usar o método Items.Add, primeiro você deve fazer referência a pasta onde você deseja criar um novo item.

Para obter mais informações sobre classes de mensagens, leia os seguintes artigos na Base de dados de Conhecimento da Microsoft:
176567  (http://support.microsoft.com/kb/176567/EN-US/ ) OL97: Trabalhando com definições de formulário e formulários one-off
170301  (http://support.microsoft.com/kb/170301/EN-US/ ) OL97: Como actualizar itens existentes para utilizar um novo formulário personalizado
Os exemplos a seguir usam o método Items.Add para criar um novo item baseado em um formulário de contato personalizado chamado MyForm:
   ' Automation code example.
   Set ol = New Outlook.Application
   Set olns = ol.GetNameSpace("MAPI")
   Set myFolder = olns.GetDefaultFolder(olFolderContacts)
   Set MyItem = MyFolder.Items.Add("IPM.Contact.MyForm")
   MyItem.Display

   ' VBScript code example.
   Set olns = Item.Application.GetNameSpace("MAPI")
   Set myFolder = olns.GetDefaultFolder(10)
   Set MyItem = MyFolder.Items.Add("IPM.Contact.MyForm")
   MyItem.Display
				
exemplos a seguir usam o método Items.Add para criar um novo item de contato padrão:
   ' Automation code example.
   Set ol = New Outlook.Application
   Set olns = ol.GetNameSpace("MAPI")
   Set myFolder = olns.GetDefaultFolder(olFolderContacts)
   Set MyItem = MyFolder.Items.Add
   MyItem.Display

   ' VBScript code example.
   Set olns = Item.Application.GetNameSpace("MAPI")
   Set myFolder = olns.GetDefaultFolder(10)
   Set MyItem = MyFolder.Items.Add
   MyItem.Display
				
Observação: se você usar o método Items.Add, não importa o que o formulário padrão para a pasta é. Você pode especificar qualquer classe de mensagem válida contanto que ele foi publicado na pasta ou tenha sido publicado na biblioteca de formulários particular ou organizacional.

Método CreateItemFromTemplate:

Use o método CreateItemFromTemplate para criar um novo item baseado em um arquivo de modelo do Outlook (.oft) ou formato de arquivo .msg. Porque a maioria dos formulários são publicados em uma pasta ou biblioteca de formulários, esse método não é usado normalmente. Provavelmente o motivo mais comum para usar esse método seria se você estivesse criando um programa de instalação do Microsoft Visual Basic para instalar formulários para uma solução do Outlook. Isso normalmente deve ser feito para usuários que não possuem acesso à rede ou normalmente trabalhar off-line no Outlook. O Visual Basic programa faria o seguinte:
  • Automatize o Outlook.
  • Use CreateItemFromTemplate para abrir um formulário de um compartilhamento de rede ou o disquete.
  • Usando o modelo de objeto do Outlook, publique o formulário para uso posterior.
       ' Automation code example.
       Set ol = New Outlook.Application
       Set olns = ol.GetNameSpace("MAPI")
       ' Set MyFolder to the default contacts folder.
       Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
       ' Set MyItem to an .oft file on a floppy disk.
       Set MyItem = ol.CreateItemFromTemplate("A:\Contact.oft")
       ' Set MyForm to the item Form Description for publishing.
       Set MyForm = MyItem.FormDescription
       ' Name the form, which also sets its message class.
       MyForm.Name = "My Contact"
       ' Publish the folder to the Contacts folder.
       MyForm.PublishForm olFolderRegistry, MyFolder
       ' Close and do not save changes to the item.
       MyItem.Close olDiscard
    						

Referenciar itens existentes

Usar itens (i) ou for each... Next:

Geralmente essas abordagens são usadas para percorrer todos os itens em uma pasta. A coleção de itens contém todos os itens em uma pasta específica e você pode especificar qual item fará referência usando um índice com a coleção Items. Normalmente, isso é usado com For I = 1 para construção de programação n.

Se você estiver usando o VBScript versão 2.0 ou posterior, você pode usar em vez disso, a construção de programação for each... Next para percorrer os itens na coleção sem especificar um índice. Ambas as abordagens obter o mesmo resultado.

Os exemplos a seguintes usam a abordagem itens (i) para efetuar loop por todos os contatos na pasta Contatos e exibir seu campo NomeCompleto em uma caixa de diálogo.
   ' Automation code example.
   Set ol = New Outlook.Application
   Set olns = ol.GetNameSpace("MAPI")
   ' Set MyFolder to the default contacts folder.
   Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
   ' Get the number of items in the folder.
   NumItems = MyFolder.Items.Count
   ' Set MyItem to the collection of items in the folder.
   Set MyItems = MyFolder.Items
   ' Loop through all of the items in the folder.
   For I = 1 to NumItems

      MsgBox MyItems(I).FullName
      Next

   ' VBScript code example.
   Set olns = Item.Application.GetNameSpace("MAPI")
   ' Set MyFolder to the default contacts folder.
   Set MyFolder = olns.GetDefaultFolder(10)
   ' Get the number of items in the folder.
   NumItems = MyFolder.Items.Count
   ' Set MyItem to the collection of items in the folder.
   Set MyItems = MyFolder.Items
   ' Loop through all of the items in the folder.
   For I = 1 to NumItems
      MsgBox MyItems(I).FullName
   Next
				
os exemplos seguintes usam a construção for each... Next para atingir o mesmo resultado como exemplos anteriores:
   ' Automation code example.
   Set ol = New Outlook.Application
   Set olns = ol.GetNameSpace("MAPI")
   ' Set MyFolder to the default contacts folder.
   Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
   ' Set MyItems to the collection of items in the folder.
   Set MyItems = MyFolder.Items
   For Each SpecificItem in MyItems
      MsgBox SpecificItem.FullName
   Next

   ' VBScript code example.
   Set olns = Item.Application.GetNameSpace("MAPI")
   ' Set MyFolder to the default contacts folder.
   Set MyFolder = olns.GetDefaultFolder(10)
   ' Set MyItem to the collection of items in the folder.
   Set MyItems = MyFolder.Items
   For Each SpecificItem in MyItems
      MsgBox SpecificItem.FullName
   Next
				
Items("This is the subject") usando:

Você também pode usar a coleção Items e especificar uma seqüência de caracteres de texto que corresponda ao campo assunto de um item. Essa abordagem não é usada normalmente.

Os exemplos a seguintes exibem um item da caixa de entrada cujo assunto contém "Please help on Friday!"
   ' Automation code example.
   Set ol = New Outlook.Application
   Set olns = ol.GetNameSpace("MAPI")
   ' Set MyFolder to the default Inbox.
   Set MyFolder = olns.GetDefaultFolder(olFolderInbox)
   Set MyItem = MyFolder.Items("Please help on Friday!")
   MyItem.Display

   ' VBScript code example.
   Set olns = Item.Application.GetNameSpace("MAPI")
   ' Set MyFolder to the default Inbox.
   Set MyFolder = olns.GetDefaultFolder(6)
   Set MyItem = MyFolder.Items("Please help on Friday!")
   MyItem.Display
				
localizar método:

Use o método Find para procurar um item em uma pasta com base no valor de um de seus campos. Se a localização é bem-sucedida, você pode usar o método FindNext para procurar itens adicionais que satisfazem o mesmo critério de pesquisa.

Pesquisar os exemplos a seguir para verificar se você tem compromissos alta prioridade.
   ' Automation code example.
   Set ol = New Outlook.Application
   Set olns = ol.GetNamespace("MAPI")
   Set myFolder = olns.GetDefaultFolder(olFolderTasks)
   Set MyTasks = myFolder.Items
   ' Importance corresponds to Priority on the task form.
   Set MyTask = MyTasks.Find("[Importance] = ""High""")
   If MyTask Is Nothing Then ' the Find failed
      MsgBox "Nothing important. Go party!"
   Else
      MsgBox "You have something important to do!"
   End If

   ' VBScript code example.
   Set olns = Item.Application.GetNamespace("MAPI")
   Set myFolder = olns.GetDefaultFolder(13)
   Set MyTasks = myFolder.Items
   ' Importance corresponds to Priority on the task form.
   Set MyTask = MyTasks.Find("[Importance] = ""High""")
   If MyTask Is Nothing Then ' the Find failed
      MsgBox "Nothing important. Go party!"
   Else
      MsgBox "You have something important to do!"
   End If
				
restringir método:

O método Restrict é semelhante para o método Find, mas em vez de retornar um único item, ele retorna uma coleção de itens que atendem os critérios de pesquisa. Por exemplo, você pode usar esse método para localizar todos os contatos que trabalham na mesma empresa.

Os exemplos seguintes exibem todos os contatos que trabalham na ACME software:
   ' Automation code example.
   Set ol = New Outlook.Application
   Set olns = ol.GetNameSpace("MAPI")
   Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
   Set MyItems = MyFolder.Items
   MyClause = "[CompanyName] = ""ACME Software"""
   Set MyACMEItems = MyItems.Restrict(MyClause)
   For Each MyItem in MyACMEItems
      MyItem.Display
   Next

   ' VBScript code example.
   ' Requires VBScript version 2.0 or later.
   Set olns = Item.Application.GetNameSpace("MAPI")
   Set MyFolder = olns.GetDefaultFolder(10)
   Set MyItems = MyFolder.Items
   MyClause = "[CompanyName] = ""ACME Software"""
   Set MyACMEItems = MyItems.Restrict(MyClause)
   For Each MyItem in MyACMEItems
      MyItem.Display
   Next
				
método GetItemFromID:

Este método geralmente seria usado em soluções mais complexas onde uma solução mantém controle sobre a StoreID e EntryID de um item para que ele pode ser recuperado rapidamente em um momento posterior.

Para obter mais informações sobre como usar o método GetItemFromID, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
170991  (http://support.microsoft.com/kb/170991/EN-US/ ) OL97: Programação com EntryIDs, armazenamento e GetItemFromID

Referências

Para obter mais informações sobre como criar soluções com o Microsoft Outlook 97, consulte os seguintes artigos na Base de dados de Conhecimento da Microsoft:
166368  (http://support.microsoft.com/kb/166368/EN-US/ ) OL97: Como obter programação de ajuda com o Outlook
170783  (http://support.microsoft.com/kb/170783/EN-US/ ) OL97: Perguntas e respostas: perguntas sobre como personalizar ou Programming Outlook

A informação contida neste artigo aplica-se a:
  • Microsoft Outlook 97 Standard Edition
Palavras-chave: 
kbmt kbhowto kbprogramming KB180696 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 180696  (http://support.microsoft.com/kb/180696/en-us/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.