Compartilhar via


Demonstra Passo a passo: Atualizar os controles em uma faixa de opções em tempo de execução

Se aplica a

As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office.

Tipo de Projeto

  • Projetos de nível de documento

  • Projetos de nível de aplicativo

Versão do Microsoft Office

  • O Excel 2007

  • Word 2007

  • Outlook 2007

  • PowerPoint 2007

For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto.

Esta explicação passo a passo demonstra como usar o modelo de objeto da Faixa de Opções para atualizar os controles em uma faixa de opções depois que a faixa de opções estiver Carregado para o aplicativo do Office.

O exemplo recebe dados do banco de dados de exemplo AdventureWorks para preencher uma caixa de combinação e o menu do Microsoft Office Outlook.

Essa explicação passo a passo ilustra as seguintes tarefas:

  • Criar um novo Outlook Adicionar no projeto.

  • Criando um AAgruparar de Faixa de Opções Personalizar.

  • Adicionar o AAgruparar Personalizar a uma guia interna.

  • Atualizando controles da Faixa de Opções em tempo de execução.

Observação:

Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir.A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos.Para obter mais informações, consulte Configurações do Visual Studio.

Pré-requisitos

Para completar este passo a passo, são necessários os seguintes componentes:

  • Ferramentas do Visual Studio para o Office (um componente opcional do O Visual Studio 2008 Professional e Visual Studio Team System).

  • Microsoft Office Outlook 2007.

  • Acessar a banco de dados de exemplo AdventureWorks para SQL Servidor Express.Para obter mais informações sobre como instalar o banco de dados AdventureWorks, consulte Walkthrough: Installing the AdventureWorks Database.

Ferramentas do Visual Studio para o Office é instalado por padrão com as versões listadas do Visual Studio.Para Marcar se ele está instalado, Marcar Instalando o Visual Studio Tools para Office.

Criar um novo Outlook Adicionar - projeto

Primeiro, crie um Outlook Adicionar no projeto.

Para criar um novo Outlook Adicionar - projeto

  1. Em Visual Studio, Criar um projeto de suplemento do Outlook 2007 com o nome MyOutlookAddIn.

  2. Na caixa de diálogo de Do novo projeto de , Selecionar Criar Diretório for solução.

  3. Salvar o projeto para o diretório do projeto padrão.

    For more information, see Como: Criar o Visual Studio Tools para projetos do Office.

Criar um AAgruparar de Faixa de Opções Personalizar

A faixa de opções não aparece na área interface principal do Outlook, portanto, a faixa de opções para este exemplo será exibido quando um usuário compõem um Novo Email.Para criar um AAgruparar Personalizar para a Faixa de Opções, primeiro adicionar um item da Faixa de Opções ao seu projeto e, em seguida, criar o AAgruparar no designer de Faixa de Opções.Esse AAgruparar personalizado ajudará você a gerar mensagens de email de acompanhamento para os clientes por recebendo nomes e Ordem históricos de um banco de dados.

Para Design um AAgruparar Personalizar

  1. No menu Project, clique em Add New Item.

  2. No Adicionar Novo Item caixa de diálogo, Selecionar Da Faixa de Opções (Designer Visual).

  3. Alterar o nome da Novo fita para CustomerRibbone clique em Adicionar.

    O arquivo de de CustomerRibbon.vb de ou CustomerRibbon.cs abre no Designer da Faixa de Opções e exibe uma Guiaulação padrão e o AAgruparar.

  4. Clique em Designer da Faixa de Opções para Selecionar-lo.

  5. No menu Exibir, clique em Janela Propriedades.

  6. Na janela de A propriedades, clique no Soltar - para baixo seta ao lado de RibbonType propriedade e clique em Microsoft.Outlook.Mail.Redigir.

    Isso permite que a faixa de opções Aparecerr quando o usuário compõem um Novo Email no Outlook.

  7. No Designer de Faixa de Opções, clique em Grupo1 para Selecionar-lo.

  8. Na janela Propriedades, defina Rótulo para compras do cliente.

  9. Na guia Controles da Faixa de Opções de Officede De caixa de ferramentas, arraste uma caixa de combinação para o AAgruparar de compras do cliente.

  10. Clique em ComboBox1 para Selecionar-lo.

  11. Na janela Propriedades, defina Rótulo para clientes.

  12. Na guia Controles da Faixa de Opções de Office de De caixa de ferramentas, arraste um menu para o AAgruparar de compras do cliente.

  13. Na janela Propriedades , defina Rótulo para compra de produtos.

  14. Defina Dinâmico como true.

    Isso permite que você adicionar e remover controles no menu em tempo de execução após a faixa de opções Carregado para o aplicativo do Office.

Adicionando o AAgruparar Personalizar a um guia interno

Uma guia interna é uma tabulação que já está na faixa de opções de um inspetor do Outlook.Neste procedimento, você irá adicionar o AAgruparar Personalizar a uma guia interna e, em seguida, especificar a posição do AAgruparar Personalizar na guia.

Para adicionar o AAgruparar Personalizar a uma guia interna

  1. Clique na guia de TabAddins (interna) para Selecionar-lo.

  2. Na janela Properties, Expandirir ControlId propriedade e, em seguida, defina OfficeId para TabNewMailMessage.

    Isso adiciona o AAgruparar de compras do cliente na guia de Messages da Faixa de Opções que aparece em um Novo Email.

  3. Clique no AAgruparar de compras do cliente para Selecionar-lo.

  4. Na janela Properties, Expandira Posição propriedade, clique no Soltar - para baixo seta ao lado de PositionType propriedade e clique em BeforeOfficeId.

  5. Defina o OfficeId propriedade como GroupClipBoard.

    Isso posiciona o AAgruparar de compras do cliente antes o AAgruparar de da área de transferência da guia mensagens.

Atualizando controles em que o AAgruparar Personalizar em tempo de execução

Usar o modelo de objeto da Faixa de Opções para executar as seguintes tarefas:

  • Adicionar cliente nomes à caixa de combinação Clientes.

  • Adicionar menu e Caixa de Marcar controles para o menu de Compra de produtos que representam as ordens de venda e de produtos vendidos.

  • Preencha a Microsoft.Office.Interop.Outlook.MailItem.To, Microsoft.Office.Interop.Outlook.MailItem.Subjecte Microsoft.Office.Interop.Outlook.MailItem.Body campos de Novo mensagens de email usando dados da caixa de combinação de clientes e Compra de produtos menu.

Para atualizar controles do AAgruparar Personalizar usando o modelo de objeto da Faixa de Opções

  1. No menu Project, escolha Add Reference.

  2. No Adicionar Referência caixa de diálogo, clique na guia de .NET, Selecionar Sistema.Dadosta.Linq assembly e, em seguiDados, clique em OK.

    Neste módulo (assembly) contém classes para usar consultas Idioma-Integrated (LINQ).Você usará o LINQ para preencher os controles do AAgruparar Personalizar com dados do banco de dados AdventureWorks.Para obter mais informações sobre LINQ, consulte Idioma-Integrated Consulta (LINQ).

  3. Em Gerenciador de Soluções, clique em CustomerRibbon.cs ou CustomerRibbon.vb para selecioná-lo.

  4. No menu Exibir, clique em Código.

    O arquivo de código da Faixa de Opções abre no editor de códigos.

  5. Adicionar As instruções a seguir para a parte superior do arquivo de código da Faixa de Opções.Essas instruções fornecem Acessar fácil para namespaces do LINQ e o espaço para nome do conjunto do Outlook primário módulos (assembly) de interoperabilidade PIA).

    Imports Microsoft.Office.Tools.Ribbon
    Imports System.Data.Linq
    Imports System.Linq
    Imports System.Data.Linq.Mapping
    Imports System.Linq.Expressions
    Imports Outlook = Microsoft.Office.Interop.Outlook
    
    using System.Data.Linq;
    using System.Linq;
    using System.Data.Linq.Mapping;
    using System.Linq.Expressions;
    using Outlook = Microsoft.Office.Interop.Outlook;
    using System.IO;
    
  6. Adicionar as seguintes classes para o arquivo de código da Faixa de Opções.Você irá usar essas classes para armazenar informações dos clientes, contato, cabeçalho de ordem de vendas, detalhes de pedido de vendas e tabelas de produto do banco de dados AdventureWorks.

    ' Customer Table.
    <Table(Name:="Sales.Customer")> _
    Public Class Customer
        <Column(IsPrimaryKey:=True)> _
            Public CustomerID As Integer
    End Class
    
    ' Contact Table.
    <Table(Name:="Person.Contact")> _
    Public Class Contact
        <Column(IsPrimaryKey:=True)> _
           Public ContactID As Integer
        <Column()> _
        Public LastName As String
    
    End Class
    ' Sales Order Header Table.
    <Table(Name:="Sales.SalesOrderHeader")> _
    Public Class SalesOrderHeader
        <Column(IsPrimaryKey:=True)> _
           Public SalesOrderID As Integer
        <Column()> _
       Public SalesOrderNumber As String
        <Column()> _
        Public CustomerID As Integer
    End Class
    
    ' Sales Order Detail Table.
    <Table(Name:="Sales.SalesOrderDetail")> _
    Public Class SalesOrderDetail
        <Column(IsPrimaryKey:=True)> _
           Public SalesOrderDetailID As Integer
        <Column()> _
       Public SalesOrderID As Integer
        <Column()> _
        Public ProductID As Integer
    End Class
    
    ' Product Table.
    <Table(Name:="Production.Product")> _
    Public Class Product
        <Column(IsPrimaryKey:=True)> _
           Public ProductID As Integer
        <Column()> _
        Public Name As String
    End Class
    ' Data Context Class.
    Partial Public Class AdventureWorks
        Inherits DataContext
        Public Customer As Table(Of Customer)
        Public Contact As Table(Of Contact)
        Public SalesOrderHeader As Table(Of SalesOrderHeader)
        Public SalesOrderDetail As Table(Of SalesOrderDetail)
        Public Product As Table(Of Product)
        Public Sub New(ByVal connection As String)
            MyBase.New(connection)
        End Sub
    End Class
    
    // Customer Table.
    [Table(Name = "Sales.Customer")]
    public class Customer
    {
        [Column(IsPrimaryKey = true)]
        public int CustomerID;
    }
    
    // Contact Table.
    [Table(Name = "Person.Contact")]
    public class Contact
    {
        [Column(IsPrimaryKey = true)]
        public int ContactID;
        [Column]
        public string LastName;
    
    }
    // Sales Order Header Table.
    [Table(Name = "Sales.SalesOrderHeader")]
    public class SalesOrderHeader
    {
        [Column(IsPrimaryKey = true)]
        public int SalesOrderID;
    
        [Column]
        public string SalesOrderNumber;
    
        [Column]
        public int CustomerID;
    
    }
    // Sales Order Detail Table.
    [Table(Name = "Sales.SalesOrderDetail")]
    public class SalesOrderDetail
    {
        [Column(IsPrimaryKey = true)]
        public int SalesOrderDetailID;
    
        [Column]
        public int SalesOrderID;
    
        [Column]
        public int ProductID;
    
    }
    // Product Table.
    [Table(Name = "Production.Product")]
    public class Product
    {
        [Column(IsPrimaryKey = true)]
        public int ProductID;
    
        [Column]
        public string Name;
    
    }
    // Data Context Table.
    public partial class AdventureWorks : DataContext
    {
        public Table<Customer> Customer;
        public Table<Contact> Contact;
        public Table<SalesOrderHeader> SalesOrderHeader;
        public Table<SalesOrderDetail> SalesOrderDetail;
        public Table<Product> Product;
        public AdventureWorks(string connection) : base(connection) { }
    }
    
  7. Substituir o método de manipulador de eventos de CustomerRibbon_Load com o código a seguir.Esse código usa uma consulta LINQ para executar as seguintes tarefas:

    • Preencha a caixa de combinação de clientes com o ID e o nome do 20 clientes no banco de dados AdventureWorks.

    • Chama o método auxiliar PopulateSalesOrderInfo.Esse método atualiza o menu de ProductsPurchased com números de ordem de venda que pertencem ao cliente selecionado no momento.

     Private Sub CustomerRibbon_Load(ByVal sender As System.Object, _
    ByVal e As Microsoft.Office.Tools.Ribbon.RibbonUIEventArgs) _
        Handles MyBase.Load
    
         Dim programFilesDir As String = Environment.GetFolderPath _
         (Environment.SpecialFolder.ProgramFiles)
         Dim db As New AdventureWorks(programFilesDir + _
             "\Microsoft SQL Server\" + "MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf")
    
         Dim customerQuery = From customers In db.Customer.Take(20), contact In db.Contact _
                             Where customers.CustomerID = contact.ContactID _
                 Select CustomerID = customers.CustomerID, LastName = _
                     contact.LastName
    
         ' Execute the query.
         For Each item In customerQuery
             Me.ComboBox1.Items.Add(New RibbonDropDownItem())
             Me.ComboBox1.Items.Last().Label = item.CustomerID.ToString() _
                 + "|" + item.LastName
         Next item
    
         Me.ComboBox1.Text = Me.ComboBox1.Items.First().Label
         PopulateSalesOrderInfo()
     End Sub
    
    
    private void CustomerRibbon_Load(object sender, RibbonUIEventArgs e)
    {
        string programFilesDir = Environment.GetFolderPath
            (Environment.SpecialFolder.ProgramFiles);
        AdventureWorks db = new AdventureWorks
            (programFilesDir + "\\Microsoft SQL Server\\" + 
        "MSSQL.1\\MSSQL\\Data\\AdventureWorks_Data.mdf");
        var customerQuery = from customers in db.Customer.Take(20)
                            join contacts in db.Contact on 
                                customers.CustomerID 
                            equals contacts.ContactID
                            select new { customers.CustomerID, 
                                contacts.LastName };
    
    
        // Execute the query.
        foreach (var item in customerQuery)
        {
            this.comboBox1.Items.Add(new RibbonDropDownItem());
            this.comboBox1.Items.Last().Label = 
                item.CustomerID.ToString() + "|" + item.LastName;
        }
        this.comboBox1.Text = this.comboBox1.Items.First().Label;
        PopulateSalesOrderInfo();
    }
    
  8. Adicione o seguinte código à classe CustomerRibbon:Esse código usa consultas LINQ para executar as seguintes tarefas:

    • Adiciona um submenu ao menu ProductsPurchased para cada ordem de venda relacionado ao cliente selecionado.

    • Adiciona caixas de Marcar para cada submenu para os produtos relacionados à ordem de venda.

    • Adiciona manipuladores de eventos a cada Caixa de Marcar.

     Private Sub PopulateSalesOrderInfo()
    
         Dim tempArray As [String]() = comboBox1.Text.Split(New [Char]() {"|"c})
         Menu1.Items.Clear()
         Dim programFilesDir As String = Environment.GetFolderPath _
             (Environment.SpecialFolder.ProgramFiles)
         Dim db As New AdventureWorks(programFilesDir + _
             "\Microsoft SQL Server\" + "MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf")
    
    
         Dim orderQuery = From orders In db.SalesOrderHeader _
                          Where orders.CustomerID.ToString() = tempArray(0) _
                          Select SalesOrderID = _
                              orders.SalesOrderID, SalesOrderNumber = _
                                  orders.SalesOrderNumber
    
         For Each orderItem In orderQuery
             Dim Menu2 As New RibbonMenu()
             Menu2.Dynamic = True
             Menu1.Items.Add(Menu2)
             CType(Menu1.Items.Last(), RibbonMenu).Label = _
                 orderItem.SalesOrderNumber.ToString()
             CType(Menu1.Items.Last(), RibbonMenu).Tag = _
                 orderItem.SalesOrderID
    
             Dim productQuery = From orderDetail In db.SalesOrderDetail, _
                                    product In db.Product _
                                Where orderDetail.ProductID = _
                                    product.ProductID _
                                And orderDetail.SalesOrderID = _
                                orderItem.SalesOrderID _
             Select productName = product.Name
    
             For Each productItem In productQuery
                 CType(Menu1.Items.Last(), RibbonMenu).Items.Add _
                     (New RibbonCheckBox())
                 CType(CType(Menu1.Items.Last(),  _
    RibbonMenu).Items.Last(), RibbonCheckBox).Label = productItem
                 AddHandler (CType(CType(Menu1.Items.Last(),  _
    RibbonMenu).Items.Last(), RibbonCheckBox).Click), AddressOf CheckBox_Click
    
             Next productItem
         Next orderItem
     End Sub
    
    
    
    
    private void PopulateSalesOrderInfo()
    {
        String[] tempArray = comboBox1.Text.Split(new Char[] { '|' });
        menu1.Items.Clear();
        string programFilesDir = Environment.GetFolderPath
            (Environment.SpecialFolder.ProgramFiles);
        AdventureWorks db = new AdventureWorks
            (programFilesDir + "\\Microsoft SQL Server\\" +
                "MSSQL.1\\MSSQL\\Data\\AdventureWorks_Data.mdf");
    
        var orderQuery = from orders in db.SalesOrderHeader
                         where orders.CustomerID.ToString() == tempArray[0]
                         select new { orders.SalesOrderID, 
                             orders.SalesOrderNumber };
    
        foreach (var orderItem in orderQuery)
        {
            RibbonMenu menu2 = new RibbonMenu();
            menu2.Dynamic = true;
            menu1.Items.Add(menu2);
            ((RibbonMenu)menu1.Items.Last()).Label = 
                orderItem.SalesOrderNumber.ToString();
            ((RibbonMenu)menu1.Items.Last()).Tag = 
                orderItem.SalesOrderID;
    
            var productQuery = from orderDetail in db.SalesOrderDetail
                               join product in db.Product on 
                                   orderDetail.ProductID 
                               equals product.ProductID
                               where orderDetail.SalesOrderID == 
                                   orderItem.SalesOrderID
                               select new { product.Name };
    
            foreach (var productItem in productQuery)
            {
                ((RibbonMenu)menu1.Items.Last()).Items.Add
                    (new RibbonCheckBox());
                ((RibbonCheckBox)((RibbonMenu)menu1.Items.Last()).
                    Items.Last()).Label = productItem.Name;
                ((RibbonCheckBox)((RibbonMenu)menu1.Items.Last()).
                    Items.Last()).Click 
                    += new EventHandler<RibbonControlEventArgs>(checkBox_Click);
            }
    
        }
    }
    
  9. Em Solução Explorer, duplo Clique o arquivo de código da Faixa de Opções.

    O Designer de Faixa de Opções é aberto.

  10. No Designer da Faixa de Opções, clique Duplo na caixa de combinação de Clientes.

    O arquivo de código da Faixa de Opções abre no editor de códigos e o manipulador de eventos ComboBox1_TextChanged aparece.

  11. Substituir o manipulador de eventos de ComboBox1_TextChanged com o código a seguir.Esse código executa as seguintes tarefas:

    • Chama o método auxiliar PopulateSalesOrderInfo.Esse método atualiza Compra de produtos menu com ordens de venda que se relacionam com o cliente selecionado.

    • Chama o método auxiliar PopulateMailItem.Este método popula a Microsoft.Office.Interop.Outlook.MailItem.To, Microsoft.Office.Interop.Outlook.MailItem.Subjecte Microsoft.Office.Interop.Outlook.MailItem.Body campos de Novo mensagens de email.

    Private Sub ComboBox1_TextChanged(ByVal sender As System.Object, _
        ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _
            Handles ComboBox1.TextChanged
        PopulateSalesOrderInfo()
        PopulateMailItem(ComboBox1.Text)
    End Sub
    
    private void comboBox1_TextChanged(object sender, 
        RibbonControlEventArgs e)
    {
        PopulateSalesOrderInfo();
        PopulateMailItem(comboBox1.Text);
    }
    
  12. Adicione o seguinte código à classe CustomerRibbon:Este código adiciona o nome de produtos selecionados para o campo Microsoft.Office.Interop.Outlook.MailItem.Body de Novo mensagens de email.

    Private Sub CheckBox_Click(ByVal sender As System.Object, _
        ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs)
        Dim application As Outlook.Application = Globals.ThisAddIn.Application
        Dim inspector As Outlook.Inspector = application.ActiveInspector()
        Dim myMailItem As Outlook.MailItem = CType(inspector.CurrentItem,  _
            Outlook.MailItem)
        Dim myCheckBox As RibbonCheckBox = CType(sender, RibbonCheckBox)
        myMailItem.Subject = "Following up on your order"
        myMailItem.Body = myMailItem.Body + ControlChars.Lf + "* " _
            + myCheckBox.Label
    End Sub
    
    private void checkBox_Click(object sender, RibbonControlEventArgs e)
    {
        Outlook.Application application = Globals.ThisAddIn.Application;
        Outlook.Inspector inspector = application.ActiveInspector();
        Outlook.MailItem myMailItem = (Outlook.MailItem)inspector.CurrentItem;
        RibbonCheckBox myCheckBox = (RibbonCheckBox)sender;
        myMailItem.Subject = "Following up on your order";
        myMailItem.Body = myMailItem.Body + "\n" + "* " + myCheckBox.Label;
    }
    
  13. Adicione o seguinte código à classe CustomerRibbon:Esse código executa as seguintes tarefas:

    • Preenche a linha Microsoft.Office.Interop.Outlook.MailItem.To de Novo mensagens de email usando o endereço de email do cliente selecionado.

    • Adiciona texto a Microsoft.Office.Interop.Outlook.MailItem.Subject e campos de Microsoft.Office.Interop.Outlook.MailItem.Body de Novo mensagens de email.

    Private Sub PopulateMailItem(ByVal addressToLine As String)
        Dim application As Outlook.Application = Globals.ThisAddIn.Application
        Dim inspector As Outlook.Inspector = application.ActiveInspector()
        Dim myMailItem As Outlook.MailItem = _
            CType(inspector.CurrentItem, Outlook.MailItem)
    
        myMailItem.To = ""
        Dim tempArray As [String]() = addressToLine.Split(New [Char]() {"|"c})
        myMailItem.To = tempArray(1) + "@example.com"
        myMailItem.Subject = "Following up on your order"
        myMailItem.Body = "Hello " + tempArray(1) + ","
        myMailItem.Body = myMailItem.Body + ControlChars.Lf + _
            "We would like to get your " + _
        "feedback on the following products that you recently ordered: "
    End Sub
    
    private void PopulateMailItem(string addressToLine)
    {
        Outlook.Application application = Globals.ThisAddIn.Application;
        Outlook.Inspector inspector = application.ActiveInspector();
        Outlook.MailItem myMailItem = (Outlook.MailItem)inspector.CurrentItem;
    
        myMailItem.To = "";
        String[] tempArray = addressToLine.Split(new Char[] { '|' });
        myMailItem.To = tempArray[1] + "@example.com";
        myMailItem.Subject = "Following up on your order";
        myMailItem.Body = "Hello " + tempArray[1] + ",";
        myMailItem.Body = myMailItem.Body + "\n" + 
            "We would like to get your " + 
                "feedback on the following products that you recently ordered: ";
    }
    

Testando os controles no AAgruparar Personalizar

Quando você Abrir um novo formulário de email no Outlook, um AAgruparar personalizado chamado De compras do cliente é exibida na guia Mensagens da Faixa de Opções.

Para criar uma mensagem de email de acompanhamento do cliente, Selecionar um cliente e, em seguida, Selecionar produtos comprados pelo cliente.Os controles do AAgruparar de compras do cliente são atualizados em tempo de execução com dados do banco de dados AdventureWorks.

Para testar os controles no AAgruparar Personalizar

  1. Pressionarionar F5 para executar seu projeto.

    O Outlook inicia.

  2. No Outlook, no menu arquivo, aponte para Novoe, em seguida, clique em Email Mensagem.

    Ocorrem as seguintes ações:

    • Uma janela Novo Email Inspector é exibida.

    • Na guia Mensagens da faixa de opções, o AAgruparar de compras do cliente aparece antes do AAgruparar de da área de transferência.

    • A caixa de combinação de clientes no AAgruparar é atualizada com os nomes de clientes no banco de dados AdventureWorks.

  3. Na guia Mensagens da Faixa de Opções, no AAgruparar compras do cliente, Selecionar um cliente da caixa de combinação do Clientes.

    Ocorrem as seguintes ações:

    • Compra de produtos menu é atualizado com um menu que representa cada ordem de venda para esse cliente.

    • Cada menu ordem de venda é atualizado com caixas de Marcar que representam os produtos comprados pelo cliente.

    • Endereço de email do cliente selecionado é adicionado para o A linha da mensagem email, e o assunto e corpo da mensagem de correio são preenchidas com texto.

  4. Clique no menu de compras de produtos, aponte para qualquer ordem de venda e, em seguida, clique em um produto da ordem de venda.

    O nome do produto é adicionado ao corpo do email Mensagem.

Próximas etapas

Você pode saber mais sobre como personalizar a INTERFACE do Office destes tópicos:

Consulte também

Tarefas

Como: Começar a personalizar a Faixa de Opções

Demonstra Passo a passo: Criando um guia Personalizar usando o Designer de Faixa de Opções

Como: Alterar a ordem das guias na Faixa de Opções

Como: Personalizar um guia interno

Como: Personalizar o menu do Microsoft Office

Como: Exportar uma Faixa de Opções do Designer de Faixa de Opções para o XML da Faixa de Opções

Como: Mostrar erros de interface de usuário Adicionar-in

Conceitos

Acessando a faixa de opções em tempo de execução

Visão geral da Faixa de Opções

Designer de Faixa de Opções

Visão geral do modelo de objeto da Faixa de Opções

Personalizando uma faixa de opções para Outlook