Personalizando a interface do usuário da Faixa de Opções do Office (2007)

Artigos técnicos dos conjuntos Microsoft Office - para desenvolvedores (Parte 1 de 2)

Publicado em: 24/8/2006

Frank Rice

Aplicável a:

  • Conjuntos do Microsoft Office 2007

  • Microsoft Office Access 2007

  • Microsoft Office Excel 2007

  • Microsoft Office PowerPoint 2007

  • Microsoft Office Outlook 2007

  • Microsoft Office Word 2007

**Resumo:**Aprender os cenários e as marcações XML que podem ser usados para personalizar a interface do usuário (UI) da Faixa de Opções na versão 2007 do Microsoft Office. A interface do usuário da Faixa de Opções substitui menus, barras de ferramentas e a maior parte do painel de tarefas na versão 2007. (31 páginas impressas)

Nesta página

Interface do usuário aprimorada Interface do usuário aprimorada
Novas formas para aprimorar a experiência do usuário Novas formas para aprimorar a experiência do usuário
Personalização da interface do usuário da Faixa de Opções da maior parte dos aplicativos do Office Personalização da interface do usuário da Faixa de Opções da maior parte dos aplicativos do Office
E quanto às soluções existentes? E quanto às soluções existentes?
Uso de retornos de chamada Uso de retornos de chamada
Duas formas para personalizar a interface do usuário da Faixa de Opções Duas formas para personalizar a interface do usuário da Faixa de Opções
Formato geral dos arquivos de marcação XML Formato geral dos arquivos de marcação XML
Personalização da interface do usuário no Access 2007 Personalização da interface do usuário no Access 2007
Criação de uma Faixa de Opções personalizada em nível de aplicativo no Access Criação de uma Faixa de Opções personalizada em nível de aplicativo no Access
Criação de uma interface do usuário personalizada do Access para vários formulários Criação de uma interface do usuário personalizada do Access para vários formulários
Outros cenários de personalização da Faixa de Opções de aplicativos do Office 2007 Outros cenários de personalização da Faixa de Opções de aplicativos do Office 2007
Utilização de suplementos de COM para modificar a interface do usuário da Faixa de Opções Utilização de suplementos de COM para modificar a interface do usuário da Faixa de Opções
Adição de suplementos com base em documentos à interface do usuário da Faixa de Opções Adição de suplementos com base em documentos à interface do usuário da Faixa de Opções
Como trabalhar com suplementos de COM da barra de comandos herdada Como trabalhar com suplementos de COM da barra de comandos herdada
Atualização dinâmica da interface do usuário da Faixa de Opções Atualização dinâmica da interface do usuário da Faixa de Opções
Carregamento de imagens Carregamento de imagens
Conclusão Conclusão
Recursos adicionais Recursos adicionais

Interface do usuário aprimorada

Muitos dos aplicativos do sistema Microsoft Office 2007 têm uma aparência nova. O recurso da interface do usuário da Faixa de Opções substitui o sistema atual de menus, barras de ferramentas e painéis de tarefas em camadas por painéis com sistema de interfaces mais simples otimizados em termos de eficiência e uso. A nova interface do usuário aprimorou menus de contexto, dicas de tela, uma mini-barra de ferramentas e atalhos do teclado que melhoram a eficiência e a produtividade do usuário.

Observação O recurso da interface do usuário da Faixa de Opções é implementado na versão do Microsoft Office 2007, que inclui o Microsoft Office Access 2007, Microsoft Office Excel 2007, Microsoft Office PowerPoint 2007, Microsoft Office Word 2007 e Microsoft Office Outlook 2007. Ele também é implementado no Microsoft Office Outlook 2007 quando um usuário cria ou edita emails ou trabalha com contatos no Calendário. Você pode personalizar a interface do usuário da Faixa de Opções por intermédio de marcações XML e de qualquer linguagem com base no Microsoft .NET à qual o Microsoft Visual Studio oferece suporte. Além disso, é possível fazer a personalização com o Microsoft Visual Basic for Applications (VBA), Microsoft Visual C++ e Microsoft Visual Basic 6.0.

Este artigo fornece uma análise detalhada da nova interface do usuário e fornece exemplos de código e cenários de personalização para a interface do usuário da Faixa de Opções.

Novas formas para aprimorar a experiência do usuário

Os desenvolvedores de aplicativos se beneficiam com ferramentas e estruturas de programação de versões anteriores do Office para ampliar a interface do usuário com forma criativas. Por exemplo, o modelo de objeto CommandBars possibilitava que os desenvolvedores criassem soluções sofisticadas nos aplicativos personalizados do Office. Prosseguindo com essa tradição, a versão do Office 2007 apresenta um modelo inovador que os desenvolvedores podem usar para aprimorar a experiência do usuário. Você pode usar a linguagem XML (linguagem de marcação extensível) e uma das diversas linguagens convencionais de programação para manipular os componentes que compõem a interface do usuário da Faixa de Opções. Como a linguagem XML é um texto sem formatação, é possível criar arquivos de personalização em qualquer editor de textos, simplificando o trabalho com a interface do usuário. Também é possível reutilizar os arquivos da interface do usuário da Faixa de Opções com o mínimo de ajustes pois cada aplicativo usa o mesmo modelo de programação. Por exemplo, é possível reutilizar os arquivos da interface do usuário da Faixa de Opções criados no Word 2007, Excel 2007, Access 2007 ou PowerPoint 2007.

Figura 1. A interface do usuário da Faixa de Opções nos aplicativos do Office 2007

O uso dos arquivos de marcação XML na personalização da interface do usuário reduz consideravelmente a necessidade de suplementos complexos baseados no modelo de objeto CommandBars. Entretanto, suplementos gravados nas versões anteriores do Office continuam funcionando na interface do usuário da Faixa de Opções com pouca ou nenhuma modificação. Os suplementos serão abordados posteriormente neste artigo.

Personalização da interface do usuário da Faixa de Opções da maior parte dos aplicativos do Office

Você pode criar uma interface do usuário da Faixa de Opções no nível do aplicativo personalizada no Word 2007, Excel 2007 ou PowerPoint 2007 das seguintes formas:

  • Usando suplementos de COM em códigos gerenciados ou não gerenciados

  • Usando suplementos específicos de aplicativos, como arquivos .ppam e .xlam

  • Usando modelos (arquivos .dotm) no Word 2007

Em um cenário comum, o código nos suplementos de COM contém procedimentos que retornam marcações XML de um arquivo de personalização externo ou de um XML presente no próprio código. Quando o aplicativo é iniciado, o suplemento carrega e executa o código que retorna a marcação XML. O código valida a marcação XML em um esquema XSD e a carrega na memória, aplicando-a na interface do usuário da Faixa de Opções. Em seguida, é exibida a interface do usuário da Faixa de Opções modificada. Os comandos e controles da interface do usuário da Faixa de Opções também usam procedimentos de retorno de chamada para executar códigos no suplemento.

As personalizações no nível do documento usam a mesma marcação XML e um arquivo de Formatos XML Abertos com uma destas extensões: .docx, .docm, .xlsx, .xlsm, .pptx ou .pptm. Neste cenário, você cria um arquivo de personalização com marcação XML e o salva em uma pasta. Em seguida, você modifica partes do contêiner com Formatos XML Abertos para mostrar o arquivo de personalização. Quando você abre o documento no aplicativo do Office, o arquivo de personalização é carregado na memória e aplicado à interface do usuário da Faixa de Opções. Em seguida, os comandos e controles chamam o código presente no documento para fornecer a funcionalidade.

E quanto às soluções existentes?

Nas versões anteriores do Office, os desenvolvedores utilizavam o modelo de objeto CommandBars para criar o código do Visual Basic que modificava a interface do usuário. Na versão 2007, esse código herdado continua funcionando na maioria dos casos sem modificação. Entretanto, as mudanças realizadas nas barras de ferramentas do Microsoft Office 2003 agora aprecem na guia Suplementos. O tipo de personalização exibido depende do design original do suplemento. Por exemplo, o Office cria um grupo Comandos de menu que contém itens adicionados à estrutura de menu anterior (menu Arquivo, menu Inserir, menu Ferramentas etc.). O programa também cria um grupo Comandos da barra de ferramentas que contém itens adicionados à barra de ferramentas de suplemento anterior (barra de ferramentas Padrão, barra de ferramentas Formatação, barra de ferramentas Figura etc.). Além disso, as barras de ferramentas personalizadas adicionadas por um documento de suplemento são exibidas no grupo Barras de ferramentas personalizadas na guia Suplementos.

Uso de retornos de chamada

Antes de entrar nas especificidades da personalização da interface do usuário da Faixa de Opções, vamos examinar o uso de retornos de chamada. No caso de extensibilidade da Faixa de Opções, especifique retornos de chamada para atualizar propriedades e executar ações na interface do usuário no tempo de execução. Por exemplo, considere a função de retorno de chamada onAction para um botão. A marcação da Faixa de Opções tem esta aparência:

<button id="myButton" onAction="MyButtonOnAction" />			
			

Essa marcação indica ao Microsoft Office para chamar a função MyButtonOnAction quando o botão é clicado. A função MyButtonOnAction tem uma assinatura específica de acordo com a seleção das linguagens. Veja um exemplo em C:

public void MyButtonOnAction (IRibbonControl control)
   {
      if (control.Id=="myButton")
      {
         System.Windows.Forms.MessageBox.Show("Button clicked!");
      }
   }
			
			

A função MyButtonOnAction pode ter qualquer nome, desde que a assinatura coincida com aquelas presentes nas tabelas a seguir:

Ela deve ser declarada como public. O parâmetro control permite que você use a mesma função de retorno de chamada em vários controles diferentes.

Observação: Todos os atributos da marcação de personalização XML usam uma notação camel casing, que escreve as letras iniciais de cada palavra em maiúscula, exceto a primeira palavra. Por exemplo, onAction e insertBefore.

Duas formas para personalizar a interface do usuário da Faixa de Opções

A versão 2007 do Office (o Access 2007 é a exceção, conforme será descrito mais adiante neste artigo) apresenta duas formas de personalização da interface do usuário da Faixa de Opções com a marcação XML: uso de arquivos válidos de Formatos XML Abertos contendo marcação XML ou uso de suplementos de COM contendo marcação XML. Qualquer mudança especificada nessa marcação XML será incremental para a interface do usuário da Faixa de Opções. Por exemplo, a adição da marcação XML que identifica uma guia personalizada inclui uma guia única.

Observação: A Faixa de Opções possui vários atributos que podem definir várias propriedades. Para obter uma lista de atributos, consulte a Tabela 14. Lista de atributos da Faixa de Opções.

Todos os controles de marcação da Faixa de Opções devem ter um dos identificadores a seguir.

Tabela 1. Um destes identificadores deve ser usado com todos os controles

Identificador

Descrição

ID

Usado com controles personalizados. Esse identificador é transmitido como uma propriedade em um IRibbonControl para chamar funções de retorno de chamada.

idMso

Usado com controles internos.

idQ

Usado com controles qualificados. Por exemplo:

<customUI xmlns=https://schemas.microsoft.com/office/2006/01/customui
 xmlns:x="myNameSpace">
<button idQ="x:myButton" . . . />
							

Observação: Na criação de um espaço para nome x, dois suplementos diferentes podem ser adicionados ao mesmo grupo personalizado, eles só precisam consultar o grupo personalizado pelo nome qualificado.

Personalização da interface do usuário da Lista de Opções com arquivos de Formatos XML Abertos

No nível do documento, o processo de personalização da interface do usuário da Faixa de Opções com marcação XML envolve as etapas a seguir. Para obter mais informações, consulte "Adição de suplementos com base em documentos à interface do usuário da Faixa de Opções" mais adiante neste artigo.

Para personalizar a interface do usuário da Lista de Opções com arquivos de Formatos XML Abertos

  1. Crie o arquivo de personalização em qualquer editor de texto adicionando marcação XML que inclua novos componentes na interface do usuário da Faixa de Opções, modifique componentes existentes ou oculte componentes. Salve o arquivo como customUI.xml.

  2. Crie uma pasta na área de trabalho com o nome customUI e copie o arquivo de personalização nessa pasta.

  3. Valide a marcação XML com esquema de interface do usuário personalizada.

    Observação: Esta etapa é opcional.

  4. Crie um documento no aplicativo do Office e salve-o como arquivo de Formatos XML Abertos com uma das seguintes extensões: .docx, .docm, .xlsx, .xlsm, .pptm ou .pptx.

    Arquivos com macros contêm o sufixo m. Esses arquivos também contêm procedimentos chamados por comandos e controles da Faixa de Opções.

  5. Adicione uma extensão .zip ao nome do arquivo do documento e abra o arquivo.

  6. Adicione o arquivo de personalização ao contêiner arrastando a pasta da área de trabalho para o arquivo Zip.

  7. Extraia o arquivo .rels do arquivo Zip na área de trabalho. Uma pasta _rels que contém o arquivo .rels é copiada na área de trabalho.

  8. Abra o arquivo .rels localizado na pasta _rels, adicione uma linha que crie uma relação entre o arquivo do documento e o arquivo de personalização e salve o arquivo.

  9. Adicione a pasta _rels novamente ao contêiner, substituindo o arquivo existente.

  10. Renomeie o arquivo com o nome original removendo a extensão .zip.

Agora, quando você abrir o arquivo no aplicativo do Office, a interface do usuário da faixa de Opções será exibida com as personalizações.

Personalização da interface do usuário com suplementos de COM

As personalizações no nível do aplicativo resultam em uma interface do usuário da Faixa de Opções modificada que aparece no aplicativo, independentemente do arquivo aberto. Essencialmente, você cria suplementos de COM para fazer tais modificações.

Para personalizar a interface do usuário com suplementos de COM

  1. Crie um projeto de suplemento de COM.

    O suplemento criado deve implementar a interface Extensibility.IDTExtensibility2 (assim como todos os suplementos de COM) e também a interface IRibbonExtensibility adicional (localizada no espaço para nome Microsoft.Office.Core).

  2. Crie o suplemento e configure o projeto, em seguida, instale o projeto.

  3. Inicie o aplicativo Microsoft Office.

    Quando os suplementos estiverem carregados, o evento IDTExtensibility2::OnConnection será acionado, inicializando o suplemento, assim como nas versões anteriores do Office.

  4. Em seguida, é chamado o método QueryInterface, que determina se a interface IRibbonExtensibility está implementada.

  5. Em caso positivo, o método IRibbonExtensibility::GetCustomUI é chamado, carregando a marcação XML (do arquivo de personalização XML ou da marcação XML incorporada ao procedimento) e, depois, carrega a interface do usuário da Faixa de Opções no aplicativo.

  6. Finalmente, a interface do usuário personalizada da Faixa de Opções está pronta para o usuário.

Cada controle especificado na marcação XML expõe a respectiva funcionalidade por chamadas aos procedimentos de retorno de chamada. Por exemplo, a marcação XML de um controle de botão pode especificar um atributo onAction que examina um procedimento executado quando o usuário clica no botão. Na maioria dos casos, o procedimento de retorno de chamada expõe uma inferface IRibbonControl que identifica o controle. Você também pode passar outros argumentos. Por exemplo, você pode passar um objeto Boolean que especifica o estado de um botão de alternância como pressionado ou não pressionado. A interface IRibbonControl implementa três propriedades: o objeto Context, o objeto Id e a propriedade tag. O objeto Context é a janela ativa que contém a Faixa de Opções que aciona o retorno de chamada. O objeto Id é o identificador da String do controle personalizado especificado na marcação. A propriedade tag é uma propriedade não exclusiva que pode ser especificada na marcação, se desejado.

Formato geral dos arquivos de marcação XML

Você pode usar a marcação XML para personalizar a interface do usuário da Faixa de Opções. O exemplo a seguir mostra o formato geral de um arquivo de marcação XML que personaliza a Faixa de Opções no Word 2007.

<customUI xmlns="https://schemas.microsoft.com/office/2005/08/customui" > 
   <ribbon startFromScratch="false" > 
      <tabs> 
         <tab idMso="TabWrite"> 
            <group idMso="GroupFont" visible="false" /> 
         </tab> 
         <tab id="CustomTab" label="My Tab"> 
            <group id="mygroup" label="Sample Group" > 
               <button id="Button1" label="My Large Button" 
                  size="large" onAction="MyMacro" /> 
               <button id="Button2" label="My Normal Button" 
                  size="normal" onAction="MyMacro" /> 
            </group > 
            <group id="SimpleControls" label="My Group "> 
               <toggleButton id="ToggleButton1" size="large" 
                  label="Large Toggle Button" getPressed="MyMacro"  /> 
               <checkBox id="CheckBox1" label="A CheckBox" 
                  tooltip="This is a check box" onAction="MyMacro" /> 
               <editBox id="EditBox1" getText="MyMacro" label=
                  "My EditBox" onChange="MyMacro"/> 
               <comboBox id="Combo1" label="My ComboBox" 
                  showItemLabel="false" onChange="MyMacro"> 
                  <item id="Zip1" label="33455" /> 
                  <item id="Zip2" label="81611" /> 
                  <item id="Zip3" label="31561" /> 
               </comboBox> 
               <advanced> 
                  <button id="Launcher" tooltip="My Launcher" 
                     onAction="MyMacro" /> 
               </advanced> 
            </group> 
         </tab> 
      </tabs> 
   </ribbon> 
</customUI> 			
			

Esta marcação XML resulta em uma interface do usuário da Faixa de Opções modificada, conforme mostra a figura a seguir:

Figura 2. Exemplo de personalização da interface do usuário da Faixa de Opções no Word

Este exemplo faz as seguintes alterações na interface do usuário da Faixa de Opções no Word 2007, na ordem exibida:

  1. Em primeiro lugar, o exemplo mostra o espaço para nome padrão e o espaço para nome personalizado.

  2. Em seguida, o exemplo oculta o grupo GroupFont interno localizado na guia Página Inicial.

  3. Em seguida, o exemplo adiciona uma nova guia CustomTab à direita da última guia interna.

    Observação: Use o atributo do identificador id= para criar um item personalizado, como uma guia personalizada. Use o atributo do identificador idMso= para consultar um item interno, como a guia TabHome.

  4. O exemplo adiciona um novo grupo SampleGroup a My Tab.

  5. O exemplo adiciona um botão ToogleButton1 maior a My Group. Também são especificadas nos retornos de chamada onAction e GetPressed.

  6. O exemplo adiciona uma caixa de seleção CheckBox1 a My Group com uma dica de tela personalizada. Um retorno de chamada onAction também é especificado.

  7. O exemplo adiciona uma caixa de edição EditBox1 a My Group. Um retorno de chamada onChange também é especificado.

  8. O exemplo adiciona uma caixa de combinação Combo1 a My Group com três itens. A caixa de combinação especifica um retorno de chamada onChange que usa o texto de cada item.

  9. O exemplo adiciona um iniciador Launcher1 a My Group com um conjunto de retornos de chamada onAction.

    Um iniciador também pode exibir uma caixa de diálogo para oferecer mais opções ao usuário.

  10. O exemplo adiciona um novo grupo MyGroup à guia personalizada.

  11. O exemplo adiciona um botão Button1 maior ao grupo MyGroup. Um retorno de chamada onAction também é especificado.

  12. Finalmente, o exemplo adiciona um botão Button1 de tamanho normal ao grupo MyGroup. Um retorno de chamada onAction também é especificado.

Como você pode perceber, é fácil modificar a interface do usuário da Faixa de Opções.

Personalização da interface do usuário no Access 2007

As personalizações da Faixa de Opções no Access 2007 compartilham algumas das mesmas opções que outros aplicativos do Office, mas com algumas diferenças importantes. Assim como os outros aplicativos do Office 2007, você personaliza a interface do usuário da Faixa de Opções do Access usando a marcação XML. E, como nos outros aplicativos, você pode usar arquivos externos com marcação XML ou suplementos de COM para integrar as personalizações da Faixa de Opções ao seu aplicativo. Entretanto, ao contrário dos outros aplicativos do Office, como os arquivos do banco de dados do Access são binários e não podem ser abertos como arquivos de Formatos XML Abertos, você não pode personalizar a Faixa de Opções do Access adicionando partes do arquivo do banco de dados.

O Access fornece muita flexibilidade na personalização da interface do usuário da Faixa de Opções. Por exemplo, você pode armazenar a marcação de personalização em uma tabela, incorporá-la a um procedimento VBA, armazená-la em outro banco de dados do Access ou vinculá-la a uma planilha do Excel. Além disso, você pode especificar uma interface do usuário personalizada no aplicativo como um todo ou em formulários e relatórios específicos.

Para ter uma boa noção da facilidade de personalização da interface do usuário do Access, vamos seguir o passo a passo de alguns cenários.

Observação: Como esse passo a passo envolve mudanças no banco de dados, convém executar estas etapas em um banco de dados diferente do seu, por exemplo, no banco de dados de exemplo Northwind fornecido com o Access.

Personalização da interface do usuário do Access

Todas as personalizações da interface do usuário do Access têm algo em comum: As Faixas de Opções que elas representam só estão disponíveis para o aplicativo apenas quando é chamado o membro do objeto VBA do Access específico à Faixa de Opções, o método LoadCustomUI. A assinatura para este método é:

expression.LoadCustomUI(CustomUIName As String, CustomUIXML As String)
	
			

onde expression retorna um objeto Application e

CustomUIName é o nome do ID da Faixa de Opções personalizada a ser associado a essa marcação e

CustomUIXML contém a marcação de personalização XML.

Normalmente, para criar e disponibilizar a Faixa de Opções para o aplicativo, crie primeiro um módulo no banco de dados com um procedimento que chame o método LoadCustomUI, transmitindo o nome da Faixa de Opções e a marcação de personalização XML. Conforme declarado anteriormente, a marcação XML pode vir de um objeto Recordset criado com base em uma tabela, de uma fonte externa do banco de dados (como arquivo XML que deve ser analisado em uma String) ou da marcação XML incorporada diretamente no procedimento. Você pode disponibilizar diferentes Faixas de Opções usando várias chamadas para o método LoadCustomUI, transmitindo uma marcação XML diferente, contanto que o nome de cada Faixa de Opções e o atributo id das guias que compõem a Faixa de Opções sejam exclusivos.

Após concluir o procedimento, crie uma macro AutoExec que chame o procedimento com a ação RunCode. Dessa forma, quando o aplicativo for iniciado, o método LoadCustomUI será executado automaticamente e todas as Faixas de Opções personalizadas serão disponibilizadas para o aplicativo.

Para aplicar uma Faixa de Opções personalizada na inicialização do aplicativo

Para implementar uma interface do usuário personalizada para que esteja disponível na inicialização do aplicativo, faça o seguinte:

  1. Siga o processo descrito anteriormente para disponibilizar as Faixas de Opções personalizadas ao aplicativo.

  2. Feche e reinicialize o aplicativo.

  3. Clique no Botão Microsoft Office (menu Arquivo) e clique no botão Opções do Access.

  4. Clique na opção Inicilizar no painel esquerdo e, em seguida, na seção Opções de Aplicativo, clique em ID da Faixa de Opção Personalizada e selecione uma das Faixas de Opções da lista.

  5. Feche e reinicialize o aplicativo. A interface do usuário selecionada é exibida.

Para atribuir uma Faixa de Opções personalizada a um formulário ou relatório

  1. Siga o processo descrito anteriormente para disponibilizar a Faixa de Opções personalizada ao aplicativo.

  2. Abra o formulário ou relatório no modo de exibição Design.

  3. Na guia Design, clique no botão Folha de propriedades.

  4. Na guia Tudo da janela Propriedade, clique na lista suspensa ID da Faixa de Opção Personalizada e selecione uma das Faixas de Opções da lista.

  5. Salve, feche e abra novamente o formulário ou relatório. A interface do usuário selecionada é exibida.

    Observação: As guias exibidas na interface do usuário da Faixa de Opções são aditivas. Isto é, salvo se ocultar especificamente as guias ou definir o atributo Start from Scratch como True, as guias exibidas na interface do usuário da Faixa de Opções de um formulário ou relatório serão um aditivo às guias existentes.

Para ilustrar mais este processo, vamos examinar alguns exemplos.

Criação de uma Faixa de Opções personalizada em nível de aplicativo no Access

As etapas a seguir demonstram a criação e a implementação de uma Faixa de Opções personalizada para o banco de dados.

Antes de começar, queremos definir uma opção que reporte qualquer erro existente quando executarmos nosso código:

  1. Clique no Botão Microsoft Office (menu Arquivo), clique no botão Opções do Access e na guia Exibir.

  2. Na seção Em todos os aplicativos do Office mostrar, selecione a opção Reportar erros na interface do usuário personalizada em suplementos.

    Em seguida, criamos uma tabela com nossa marcação XML de personalização:

  3. Inicie o Access 2007.

  4. Na guia Inserir, clique em Tabela e clique em Design da Tabela.

  5. Adicione os seguintes campos à tabela:

    Tabela 2. Definições de campo da tabela DbRibbons

    Nome do campo

    Tipo

    ID

    Long Integer (AutoNumber)

    RibbonName

    Text

    RibbonXml

    Memo

  6. Em seguida, clique com o botão direito do mouse na guia Tabela1 e clique em Modo Folha de Dados.

  7. Adicione os seguintes dados aos campos criados:

    Tabela 3. Dados da tabela DbRibbons

    Nome do campo

    Valor

    ID

    (AutoNumber)

    RibbonName

    HideData

    RibbonXml

    
    

    <customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <tabs> <tab idMso="TabAccessEdit" visible="false" /> <tab id="dbCustomTab" label="A Custom Tab" visible="true"> <group id="dbCustomGroup" label="A Custom Group"> <control idMso="Paste" label="Built-in Paste" enabled="true"/> </group> </tab> </tabs> </ribbon> </customUI>

    Essa marcação define o atributo startfromScratch como False e oculta a guia Editar interna. Em seguida, cria uma guia e um grupo personalizados e adiciona o controle Paste interno ao grupo.
    1. Salve a tabela como DbRibbons e feche-a.

      Em seguida, criamos o módulo VBA e a macro que carrega as Faixas de Opções na inicialização:

    2. Na guia Inserir, clique em Avançado e clique em Módulo.

    3. No menu Exibir, no Visual Basic Editor, clique em Janela de Propriedades.

    4. Na janela Propriedades, na caixa de texto de propriedade Nome, altere o nome do módulo para RibbonLoader.

    5. Na janela de código, insira o seguinte código VBA:

    Option Compare Database

    Function LoadRibbons() Dim i As Integer Dim db As DAO.Database Set db = Application.CurrentDb

    For i = 0 To (db.TableDefs.Count - 1) If (InStr(1, db.TableDefs(i).Name, "Ribbons")) Then Dim rs As DAO.Recordset Set rs = CurrentDb.OpenRecordset(db.TableDefs(i).Name) rs.MoveFirst

      While Not rs.EOF
            Application.LoadCustomUI rs("RibbonName").Value, rs("RibbonXml").Value
    
            rs.MoveNext
      Wend
    
      rs.Close
      Set rs = Nothing
    

    End If Next i

    db.Close Set db = Nothing End Function

    			</pre>
    
    
    Este código cria um Recordset de qualquer tabela que contenha a palavra "Faixas de Opções" no nome. Em seguida, chama o método **LoadCustomUI** para carregar as Faixas de Opções para disponibilizá-las ao banco de dados. Finalmente, fecha o conjunto de registros e a referência ao objeto **DAO.Database**.
    
    1. Salve e feche o Visual Basic Editor.

    2. Na janela Banco de Dados, na guia Inserir, clique em Avançado e clique em Macro.

    3. Na janela Macro, adicione a seguinte ação:

      Ação: RunCode

      Nome da função: LoadRibbons()

    4. Clique com o botão direito do mouse na guia Macro1 e clique em Salvar.

    5. Na caixa de diálogo Salvar como, digite AutoExec.

    6. Clique com o botão direito do mouse na guia AutoExec e clique em Fechar.

    7. Agora, feche e reinicialize o banco de dados.

    8. Clique no Botão Microsoft Office, clique em Opções do Access) e, em seguida, clique na guia Inicializar.

    9. Na seção Opções de Aplicativo, na lista ID da Faixa de Opção Personalizada, selecione HideData.

    10. Feche e reinicialize o banco de dados.

    Observe que a interface do usuário da Faixa de Opções inclui uma guia denominada Guia Personalizada, que contém um grupo denominado Grupo Personalizado com um botão Colar Interno.

    Figura 3. A interface do usuário em nível de aplicativo do Access

    Para resumir o processo, na inicialização do banco de dados, a macro AutoExec é executada, chamando o procedimento LoadRibbons. O procedimento LoadRibbons cria um objeto Recordset com base na tabela DBRibbons e, depois, chama o método LoadCustomUI, passando o nome da Faixa de Opções e a marcação de personalização XML. Depois de fechar e reinicializar o aplicativo, a Faixa de Opções HideData estará disponível para uso. Em seguida, defina a Faixa de Opções HideData como aquela que será exibida na inicialização do aplicativo. Finalmente, depois de fechar e reinicializar o aplicativo, a interface do usuário da Faixa de Opções personalizada será exibida.

    Criação de uma interface do usuário personalizada do Access para vários formulários

    Nestas etapas, criamos duas interfaces do usuário personalizadas e atribuímos uma interface do usuário diferente a dois formulários distintos. Você também pode fazer o mesmo para um ou mais relatórios. Essas etapas pressupõem a conclusão dos procedimentos anteriores e a existência da macro e do módulo.

    Primeiro, criamos uma tabela com nossa marcação XML de personalização:

    1. Inicie o Access 2007.

    2. Na guia Inserir, clique no botão Tabela e clique em Design da Tabela.

    3. Adicione os seguintes campos à tabela:

      Tabela 4. Definições de campo da tabela FormRibbons

      Nome do campo

      Tipo

      ID

      Long Integer (AutoNumber)

      RibbonName

      Text

      RibbonXml

      Memo

    4. Em seguida, clique com o botão direito do mouse em Tabela1 e clique em Modo Folha de Dados.

    5. Adicione os dois registros e os dados a seguir aos campos criados:

      Tabela 5. Dados da tabela FormRibbons

      Nome do campo

      Valor

      ID

      (AutoNumber)

      RibbonName

      HideInsert

      RibbonXml

      
      

      <customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <tabs> <tab idMso="TabCreate" visible="true" /> <tab id="frm1CustomTab" label="Custom Form 1 Tab" visible="true"> <group id="frm1CustomGroup" label="A Custom Group"> <control idMso="Paste" label="Built-in Paste" enabled="true"/> <control idMso="Copy" label="Display Message" /> </group> </tab> </tabs> </ribbon> </customUI>

      							</pre>
      

      ID

      (AutoNumber)

      RibbonName

      HidePageLayout

      RibbonXml

      <customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui"> 
         <ribbon startFromScratch="false">
            <tabs>
                  <tab idMso="TabPageLayout" visible="false" />
               <tab id="frm2CustomTab" label="Custom Form 2 Tab" visible="true">
                     <group id="frm2CustomGroup" label="A Custom Group">
                        <button id="myButton" label="Display Message" enabled="true" onAction="MyButtonOnAction" />
                     </group>
                  </tab>
            </tabs>
         </ribbon>
      </customUI>
      								
      Semelhante à marcação do procedimento anterior, esta marcação define o atributo startfromScratch como False e, depois, oculta a guia interna. Em seguida, cria uma guia e um grupo personalizados e, em um, adiciona os controles internos ao grupo personalizado. Em outra marcação, um botão personalizado é adicionado ao grupo com um atributo OnAction que aciona um procedimento que exibe uma caixa de mensagem.
      1. Salve a tabela como FormRibbons e feche-a.

        Como já escrevemos o procedimento LoadRibbons no procedimento anterior, tudo o que precisamos fazer é adicionar o procedimento de retorno de chamada chamado pelo atributo onAction à Faixa de Opções HidePageLayout.

      2. Abra o módulo RibbonLoader.

      3. No menu Ferramentas, clique em Referências e clique na caixa de diálogo Referências, role até ver a opção Biblioteca de Objetos do Microsoft Office 12.0 e, em seguida, clique na caixa de seleção. Isso dará a você acesso ao objeto IRibbonControl.

      4. Insira o código a seguir abaixo do procedimento LoadRibbons:

      Sub MyButtonOnAction(ByVal control As IRibbonControl) MsgBox ("You clicked " & control.Id) End Sub

      			</pre>
      
      1. Salve, feche e reinicie o banco de dados para disponibilizar as novas Faixas de Opções para o aplicativo.

        Agora, precisamos criar os formulários não acoplados. Certifique-se de que as tabelas não estejam realçadas durante a criação do formulário, nem que o formulário contenha todos os campos da tabela.

      2. Na guia Inserir, clique em Formulário Simples e clique em Design do Formulário.

      3. Na guia Design, clique em Folha de Propriedades.

      4. Na janela Folha de Propriedades, role até ver a propriedade ID da Faixa de Opção Personalizada.

      5. Clique na lista e selecione a Faixa de Opções HideInsert.

      6. Feche e salve o formulário como Form_HideInsert.

      7. Agora, repita essas etapas exceto, na propriedade ID da Faixa de Opção Personalizada, selecione a Faixa de Opções HidePageLayout e nomeie o formulário como Form_HidePageLayout.

      8. Feche e reinicialize o banco de dados.

      9. Abra o formulário HideInsert. Observe que, agora, a interface do usuário da Faixa de Opções fornece uma guia Guia Personalizar Formulário 1 que contém um grupo denominado Grupo Personalizado, com os botões internos Colar e Copiar.

        Figura 4. A interface do usuário da Faixa de Opções do formulário HideInsert

      10. Feche o formulário e abra o formulário HidePageLayout. A interface do usuário da Faixa de Opções exibe uma guia Guia Personalizar Formulário 2 que contém Grupo Personalizado com o botão personalizado Exibir Mensagem. Além disso, a guia interna Layout da Página não é exibida.

        Figura 5. A interface do usuário da Faixa de Opções do formulário HidePageLayout

      11. Abra o formulário HideInsert. Observe que, na medida em que você alterna entre os formulários, a interface do usuário da Faixa de Opções é modificada dependendo do formulário exibido.

      Nas etapas anteriores, demonstramos a criação de uma interface do usuário centrada no aplicativo e Faixas de Opções personalizadas para formulários diferentes. Você também pode criar uma interface do usuário da Faixa de Opções do Access personalizada usando um suplemento de COM, que fornece o benefício da adição de recursos da Faixa de Opções personalizada como um pacote sem a necessidade de adicionar um código VBA a cada aplicativo. Os suplementos são implementados no Access da mesma forma que em outros aplicativos do Office.

      Agora, vamos prosseguir nossa discussão sobre a interface do usuário da Faixa de Opções em outros aplicativos do Office.

      Outros cenários de personalização da Faixa de Opções de aplicativos do Office 2007

      Para atender a suas necessidades, considere os seguintes cenários que ilustram formas para modificar a interface do usuário da Faixa de Opções.

      Criação de soluções personalizadas

      Você pode criar suas próprias interfaces do usuário a partir do zero. O elemento <ribbon> possui um atributo startFromScratch. A definição do atributo startFromScratch como True oculta as guias principais internas. Convém fazer isso caso você deseje criar suas próprias interfaces do usuário e adicionar os próprios componentes personalizados para obter uma solução altamente personalizada. A definição do atributo startFromScratch como True representa um atalho que evita que você configure a propriedade visible de todas as guias manualmente e necessite definir os grupos como False. Esse atalho também evita a necessidade de ocultar os comandos de menu Arquivo e Barra de ferramentas de acesso rápido. O atributo startFromScratch é definido como False por padrão.

      Observação: A configuração do atributo startFromScratch como True oculta todos os comandos de menu Arquivo, exceto os comandos Novo, Abrir, Aplicativo Opções e Sair

      Quando você define o atributo startFromScratch como True, a ação:

      • Oculta todas as guias por padrão, incluindo a guia Suplementos.

      • Modifica o menu Arquivo para incluir os comandos Novo, Abrir, Salvar, Imprimir, Fechar, Configurações do Aplicativo e Sair.

        Cuidado: Você pode especificar no arquivo de marcação XML para ocultar os comandos Novo, Abrir, Salvar, Imprimir e Fechar. Declare-o explicitamente no arquivo de marcação XML definindo o atributo visible, para controle próprio, como False. No entanto, a ocultação desses comandos pode colocar o aplicativo em um estado irrecuperável, no qual a limpeza só seja possível com o fechamento do aplicativo e a desinstalação da solução.

      • Oculta a Barra de ferramentas de acesso rápido.

      O exemplo não realiza mudanças na Barra de Status, que permanece presente.

      O exemplo de marcação XML a seguir utiliza o atributo startFromScratch para personalizar a interface do usuário da Faixa de Opções:

      <customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui" > 
         <ribbon startFromScratch="true" > 
            <tabs> 
               <tab id="CustomTab" label="My Tab" > 
                  <group id="SimpleControls" label="My Group"> 
                     <toggleButton id="ToggleButton1" image="Icon.bmp" 
                        size="large" label="Large Toggle Button"/> 
                     <button id="Button2" label="My Button" /> 
                     <comboBox id="Combo1" label="ComboBox" showItemLabel="false"> 
                        <item id="Month1" label="January" /> 
                        <item id="Month2" label="February" /> 
                        <item id="Month3" label="March" /> 
                     </comboBox> 
                     <advanced> 
                        <button id="Launcher" tooltip="My Launcher" 
                           onAction="MyMacro" /> 
                     </advanced> 
                  </group> 
               </tab> 
            </tabs> 
         </ribbon> 
      </customUI> 			
      			

      Este exemplo oculta todos os componentes internos da interface do usuário da Faixa de Opções e os substitui por uma guia personalizada, um grupo e vários controles.

      Como mostrar e ocultar guias personalizadas

      Use o exemplo de código a seguir para mostrar ou ocultar guias internas ou personalizadas:

      <tab idMso="TabHome" visible="false" /><tab id="MyTab" getVisible="returnVisibleState" /> 
      
      			

      Como mostrar e ocultar grupos

      Use o exemplo de código a seguir para mostrar ou ocultar grupos internos ou personalizados:

      <tab idMso="TabHome"> 
         <group id="GroupFont" visible="false" /> 
         <group id="MyCustomGroup" label="Custom Group" getVisible="showFunction" /></tab> 
      			

      Adição de guias personalizadas

      Use o exemplo de código a seguir para adicionar guias personalizadas:

      <tab id="CustomTab" label="My Tab" /> 
      			

      Adição de grupos personalizados com controles

      Use o exemplo de código a seguir para adicionar um grupo personalizado e controles internos:

      <group id="CustomGroup" label="My Group"> 
         <toggleButton idMso="Italic" /> 
         <toggleButton idMso="Bold" /> 
         <button idMso="Save" /> 
      </group> 
      
      			

      Use o exemplo de código a seguir para adicionar um grupo personalizado e depois adicionar controles personalizados:

      <group id="CustomGroup" > 
         <toggleButton id="MyToggleButton" size="large" label="Insert My Object"/> 
         <checkBox id="AllowChanges" label="Allow Changes" /> 
         <dropDown id="ChooseDepartment" showLabel="true" label="Choose 
            Department"> 
            <item id="Dept1" label="Shipping" /> 
            <item id="Dept2" label="Accounting" /> 
            <item id="Dept3" label="Engineering" /> 
         </dropDown> 
      </group> 
      
      			

      Criação de menus personalizados com menus e controles aninhados

      Use o exemplo de código a seguir para criar um menu personalizado e, depois, adicionar menus e controles aninhados:

      <menu id="MyMenu" label="Test Menu" itemSize="normal"> 
         <togglebutton idMso="Bold"/> 
         <button id="MenuButton" label="Button" /> 
         <button id="MenuButton2" label="" /> 
         <toggleButton id="MenuToggleButton1" label="ToggleButton" /> 
         <button idMso="Exit"/> 
         <menu id="Nested1" label="Advanced" itemSize="normal"> 
            <button idMso="Cut"/> 
            <button idMso="Copy"/> 
            <button idMso="Paste"/> 
            <menu id="Nested2" label="Large" itemSize="large"> 
            <button idMso="Cut"/> 
               <button idMso="Copy"/> 
            <button idMso="Paste"/> 
            </menu> 
         </menu> 
      </menu> 
      			

      Adição de caixas de combinação ou caixas suspensas com itens aninhados

      Use o exemplo de código a seguir para adicionar um controle de caixa de combinação interno com itens e depois adicionar um controle de botão aninhado. Os controles da lista suspensa usam o mesmo formato:

      <comboBox id="ComboBox1" label="ComboBox" description="A simple combo box" > 
            <item id="item1" label="one" getImage="MyImageMacro" /> 
            <item id="item2" label="two" getImage="MyImageMacro" /> 
            <Item id="item3" label="three" getmage="MyImageMacro" /> 
      </comboBox> 
      			

      Adição de controles de galeria personalizados com itens

      Use o exemplo de código a seguir para adicionar controles de galeria com itens e depois adicionar um controle de botão personalizado:

      <gallery id="Gallery1" imageMso="DateAndTime" label=
         "Pick a Month:" columns="3" rows="4" onAction="MyMacro" > 
         <item id="Month1" label="January" /> 
         <item id="Month2" label="February"/> 
         <item id="Month3" label="March"/> 
         <item id="Month4" label="April"/> 
         <item id="Month5" label="May"/> 
         <item id="Month6" label="June"/> 
         <item id="Month7" label="July"/> 
         <item id="Month8" label="August"/> 
         <item id="Month9" label="September"/> 
         <item id="Month10" label="October"/> 
         <item id="Month11" label="November"/> 
         <item id="Month12" label="December"/> 
         <button id="Calendar" label="Calendar..."/> 
      </gallery> 
      
      			

      Observação: Você deve definir os controles de item antes dos controles do botão nesses procedimentos.

      Preencha os controles de galeria no tempo de execução com retornos de chamada. No exemplo a seguir, o método getItemCount recebe o número de itens, o método getItemImage recupera uma imagem personalizada de cada item e o método getItemLabel recupera um rótulo personalizado de cada item.

      <gallery id="galleryMyPictures" label="My Pictures" size="large" columns="3" getImage=
         "GetImage" onAction="OnAction" showOptionLabel="false" getItemCount="GetItemCount" 
         getItemImage="GetItemImage" getItemLabel="GetItemLabel"/> 
      
      			

      Adição de controles de botão com retornos de chamada de açã

      Use o exemplo de código a seguir para adicionar um controle de botão e depois especificar uma macro para o retorno de chamada OnAction.

      <button id="Button1" image="Icon.bmp" size="large" label="Press me!" onAction="ThisWorkbook.MyMacro" /> 
      			

      Agrupamento de controles individuais

      Use a construção Caixa para relacionar ou agrupar dois ou mais controles.

      <box id="box1" boxStyle="horizontal"> 
         <checkBox id="check1" label="Enabled" onAction="IsEnabled_OnAction" /> 
         <checkBox id="check2" label="Visible" onAction="IsVisible_OnAction" /> 
      </box> 
      
      			

      Utilização de suplementos de COM para modificar a interface do usuário da Faixa de Opções

      Você pode usar suplementos de COM em C para modificar a interface do usuário da Faixa de Opções, conforme exibido na Figura 6.

      Fiura 6. A interface do usuário da Faixa de Opções mostra uma guia adicionada por intermédio do suplemento de COM

      O exemplo usa o suplemento de COM gerenciado para adicionar uma interface do usuário da Faixa de Opções personalizada ao Word 2007. Neste exemplo, adicionamos uma guia, um grupo e um botão personalizados. Quando você clicar no botão, o nome de uma empresa será inserido onde o cursor estiver posicionado.

      Para criar um arquivo de personalização XM

      1. Em um editor de texto, adicione a seguinte marcação XML:

      <customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab id="CustomTab" label="My Tab"> <group id="SampleGroup" label="Sample Group"> <button id="Button" label="Insert Company Name" size="large"
      onAction="InsertCompanyName" /> </group> </tab> </tabs> </ribbon> </customUI>

      			</pre>
      
      1. Salve o arquivo como customUI.xml e feche o arquivo.

      Para criar o projeto Microsoft Visual C que modifica a interface do usuário da Faixa de Opções

      1. Inicie o Visual Studio .NET 2005

      2. No menu Arquivo, clique em Novo Projeto.

      3. Na caixa de diálogo Novo Projeto, em Tipos de Projeto, expanda Outros Projetos, clique em Projetos de Extensão e clique duas vezes em Suplemento Compartilhado.

      4. Digite um nome para o projeto. Por exemplo, digite RibbonXSampleCS.

      5. Na primeira tela do Assistente do Suplemento Compartilhado, clique em Avançar.

      6. Na próxima tela, selecione Criar Suplemento usando o Visual C e clique em Avançar.

      7. Na próxima tela, limpe todas as seleções exceto Microsoft Word e clique em Avançar.

      8. Digite um Nome e uma Descrição para o suplemento e clique em Avançar.

      9. Na tela Escolher Opções de Suplemento, selecione Carregar meu Suplemento no carregamento dos aplicativos host, clique em Avançar e depois em Concluir.

      10. Agora, adicione referências ao projeto.

      11. Em Gerenciador de Soluções, clique com o botão direito do mouse em Referências e clique em Adicionar Referência.

      12. Se você não estiver vendo a pasta Referências, no menu Projeto, clique em Mostrar todos os arquivos.

      13. Role para baixo na guia .NET e selecione Microsoft.Office.Interop.Word.

      14. Na guia COM, role para baixo, selecione Biblioteca de Objetos do Microsoft Office 12.0 e feche a caixa de diálogo.

      15. Em seguida, adicione as seguintes referências de espaço para nome ao projeto, caso não existam. Faça isso logo abaixo da linha namespace:

      using System.Reflection; using Microsoft.Office.Core; using System.IO; using System.Xml; using Extensibility; using System.Runtime.InteropServices; using MSword=Microsoft.Office.Interop.Word;

      1. Adicione o arquivo de personalização XML como um recurso incorporado ao projeto seguindo estas etapas:

        1. No Solution Explorer, clique com o botão direito do mouse em RibbonXSampleCS, aponte para Adicionar e clique em Item Existente.

        2. Nevegue até o arquivo customUI.xml criado, selecione o arquivo e clique em Adicionar.

        3. No Gerenciador de Soluções, clique com o botão direito do mouse em customUI.xml e selecione Propriedades.

        4. Na janela Propriedades, selecione Criar Ação e role para baixo até Recurso Incorporado.

        Em seguida, para obter acesso a esses membros, implemente o único membro da interface IRibbonExtensibility na classe Conectar do projeto.

      2. No Solution Explorer, clique com o botão direito do mouse em Connect.cs e clique em Exibir Código.

      3. Logo abaixo do método Conectar, adicione a seguinte declaração, que cria uma referência ao objeto do aplicativo do Word:

        Adicione a linha a seguir ao método OnConnection. Esta instrução cria uma instância do objeto Application:

      4. No final da instrução public class Connect, adicione uma vírgula e digite IRibbonExtensibility.

      5. **Dica:**Use o Microsoft IntelliSense para inserir métodos de interface. Por exemplo, no final da instrução public class Connect:, digite IRibbonExtensibility, clique com o botão direito do mouse , aponte para Implementar Interface e clique em Implementar Interface Explicitamente. Isso adiciona um stub ao único membro da interface IRibbonExtensibility: GetCustomUI. O método tem esta aparência:

      string IRibbonExtensibility.GetCustomUI(string RibbonID) { }

      			</pre>
      
      1. Insira o procedimento a seguir no método GetCustomUI , substituindo o código existente:

      return GetResource("customUI.xml");

      			</pre>
      
      1. Insira o método a seguir logo após o método GetCustommUI:

      private string GetResource(string resourceName) { Assembly asm = Assembly.GetExecutingAssembly(); foreach (string name in asm.GetManifestResourceNames()) { if (name.EndsWith(resourceName)) { System.IO.TextReader tr = new System.IO.StreamReader(asm.GetManifestResourceStream(name)); string resource = tr.ReadToEnd; tr.Close(); return resource; } } return null; }

      			</pre>
      
      
      O método GetCustomUI chama o método GetResource. O método GetResource define uma referência para este conjunto durante o tempo de execução e faz loops pelo recurso incorporado até encontrar algo com o nome customUI.xml. Em seguida, ele cria uma instância do objeto StreamReader que lê o arquivo incorporado com a marcação XML. O procedimento transmite o XML de volta para o método GetCustomUI, que retorna o XML à Faixa de Opções. Se desejar, você também pode criar uma string que contenha a marcação XML e lê-la diretamente no método GetCustomUI.
      
      1. De acordo com o método GetResource, adicione este método. Ele insere o nome da empresa no documento no início da página.

      public void InsertCompanyName(IRibbonControl control) { // Inserts the specified text at the beginning of a range or selection. string MyText; MyText = "Microsoft Corporation";

      MSword.Document doc = applicationObject.ActiveDocument;

      //Inserts text at the beginning of the active document. object startPosition = 0; object endPosition = 0; MSword.Range r = (MSword.Range)doc.Range( ref startPosition, ref endPosition); r.InsertAfter(MyText); }

      			</pre>
      
      1. Verifique se o Word está fechado. Compile o suplemento e o projeto de configuração de instalação.

      2. No menu Projeto, clique em Criar Solução. Quando terminar a compilação, você verá uma mensagem na bandeja do sistema, no canto inferior esquerdo da tela.

      3. No Solution Explorer, clique com o botão direito do mouse em RibbonXSampleCSSetup e clique em Criar.

      4. Clique novamente com o botão direito do mouse em RibbonXSampleCSSetup e clique em Instalar. Isso inicia a tela Assistente para Instalação do RibbonXSampleCSSetup.

      5. Clique em Avançar em cada uma das telas a seguir e clique em Concluir, na última tela.

      6. Inicie o Word. Você verá My Tab à direita das outras guias.

      7. Vá para Central de Confiabilidade para ativar as macros. Clique em Botão Microsoft Office (este é o botão redondo no canto superior esquerdo da tela).

      8. Clique em Central de Confiabilidade, clique em Configurações de Macro e selecione as opções Desativar todas as macros com notificação e Acesso confiável ao modelo de objeto de projeto VBA.

      Para testar o projeto

      1. Clique com o botão direito do mouse no projeto de instalação para instalar o suplemento.

      2. No término da instalação, reinicie o Word para exibir a interface do usuário personalizada.

        Se você não estiver vendo a interface do usuário personalizada, convém adicionar uma entrada ao registro. Para fazer isso, execute as etapas a seguir:

        Cuidado As próximas etapas contêm informações sobre como modificar o registro. Antes de modificar o registro, faça backup e certifique-se de que tenha entendido como restaurar o registro caso haja problema. Para obter mais informações sobre como fazer backup, restaurar e editar o registro, consulte Description of the Microsoft Windows Registry (em inglês) na Base de Dados de Conhecimento Microsoft.

        1. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto de instalação RibbonXSampleCSSetup, aponte para Exibir e clique em Registro.

        2. Na guia Registro, navegue até a chave do Registro do suplemento a seguir:

          HKCU\Software\Microsoft\Office\Word\AddIns\RibbonXSampleCS.Connect

          Observação: Se não houver a chave RibbonXSampleCS.Connect, você poderá criá-la. Para fazer isso, clique com o botão direito do mouse na pasta Suplementos, aponte para Novo e clique em Chave. Nomeie a chave RibbonXSampleCS.Connect. Adicione um DWord LoadBehavior e defina seu valor como 3.

      Adição de suplementos com base em documentos à interface do usuário da Faixa de Opções

      As etapas a seguir descrevem o processo de criação de uma interface do usuário da Faixa de Opções no Excel 2007 que contém os componentes para chamar uma macro personalizada:

      1. Crie uma pasta de trabalho do Excel habilitada para macro com uma macro.

      2. Crie um arquivo para personalizar a interface do usuário da Faixa de Opções adicionando uma guia, um grupo e um botão.

      3. Especifique um retorno de chamada no botão para chamar a macro criada no documento.

      4. Modifique o conteúdo do contêiner do documento habilitado para macro para apontar para o arquivo que personaliza a interface do usuário da Faixa de Opções.

      5. Salve o arquivo habilitado para macro e abra-o no Excel 2007.

      Para criar um arquivo de Formatos XML Abertos habilitado para macro

      1. Inicie o Excel.

      2. Clique na guia Desenvolvedor e clique em Visual Basic.

        Observação: Se a guia Desenvolver Soluções não for exibida, você precisará se identificar como desenvolvedor. Para isso, no aplicativo, clique no menu Botão Microsoft Office, clique em Configurações de Aplicativos, clique em Exibir e selecione Ferramentas para desenvolvedor. Essa é uma configuração global e identifica você como um desenvolvedor em todos os aplicativos do Microsof Office que implementam a interface do usuário da Faixa de Opções.

      3. No Visual Basic Editor, clique duas vezes em ThisWorkbook para abrir a janela de código.

      4. Digite o seguinte procedimento do VBA e feche o Visual Basic Editor.

        Sua macro deve ter uma aparência semelhante a esta:

      Sub MyMacro(ByVal control as IRibbonControl) MsgBox("Hello World") End Sub

      			</pre>
      
      
      Observação O valor de retorno precisa ser um tipo de dados Variant.
      
      1. Salve o documento como arquivo de Formatos XML Abertos habilitado para macro e coloque a extensão .xlsm no nome do arquivo.

      Para criar o arquivo XML que contém a marcação XML para modificar a interface do usuário

      1. Crie uma pasta com o nome customUI e adicione-a à área de trabalho.

      2. Abra um novo arquivo em um editor de texto e salve-o comocustomUI.xml na pasta criada.

      3. Adicione o seguinte código ao arquivo:

      <customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="true"> <tabs> <tab id="CustomTab" label="My Tab"> <group id="SimpleControls" label="My Group"> <button id="Button1" imageMso="HappyFace" size="large" label="Large Button" onAction="ThisWorkbook.MyMacro" /> </group> </tab> </tabs> </ribbon> </customUI>

      			</pre>
      

      Para modificar os arquivos presentes no contêiner do arquivo habilitado para macro

      1. Adicione uma extensão .zip ao nome do arquivo habilitado para macro.

      2. Clique duas vezes no nome do arquivo para abri-lo para exibição.

      3. Adicione a pasta customUI ao contêiner do Zip.

      4. Extraia o arquivo .rels para a área de trabalho. É exibida na área de trabalho uma pasta named _rels com o arquivo .rels.

      5. Abra o arquivo .rels no editor de texto.

      6. Adicione linha a seguir entre o último elemento <Relação> e o elemento </Relações>, e salve e feche o arquivo:

      <Relationship Id="someID" Type="https://schemas.microsoft.com/office/2006/relationships /ui/extensibility" Target="customUI/customUI.xml" />

      			</pre>
      
      1. Arraste a pasta _rels da área de trabalho para o arquivo contêiner do Zip.

      2. Remova a extensão .zip do arquivo contêiner.

      3. Abra o arquivo habilitado para macro no Excel 2007. A interface do usuário da Faixa de Opções interna é substituída pela interface do usuário personalizada.

      4. Clique em Botões Grandes. É exibida a mensagem Hello World.

      Se você não estiver vendo a mensagem, certifique-se de que as macros estejam habilitadas na pasta de trabalho.

      Como trabalhar com suplementos de COM da barra de comandos herdada

      Quando você cria suplementos de COM, geralmente precisa de algo para que os usuários possam interagir com o suplemento. Nas versões anteriores do Office, você fazia isso adicionando um item de menu ou um botão da barra de ferramentas ao aplicativo usando o modelo de objeto CommandBars. Na versão 2007 do Office, os aplicativos personalizados continuam trabalhando na interface do usuário da Faixa de Opções sem modificação na maior parte dos casos. Entretanto, as modificações realizadas com o modelo de objeto CommandBars, ou com qualquer outra tecnologia que modificava os menus ou as barras de ferramentas (como o WordBasic ou o XLM), apareciam em uma guia Suplementos separada. Isso facilitava a localização dos controles que os usuários precisavam para trabalhar e os suplementos nos quais haviam trabalhado anteriormente.

      Figura 7. Botão da barra de ferramentas personalizado adicionado à guia Suplementos do Excel 2007

      Para fazer alterações nos itens na interface do usuário da Faixa de Opções, use as técnicas e o código já descritos. Para suplementos herdados que alteram a estrutura do menu, direcione seus clientes para a guia Suplementos.

      Atualização dinâmica da interface do usuário da Faixa de Opções

      Os retornos de chamada que retornam propriedades de um controle normalmente são chamados uma vez, exceto se você especificar que a chamada deve ser repetida. Você pode consultar novamente o retorno de chamada implementando o retorno de chamada onLoad no elemento customui. Esse retorno de chamada é chamado uma vez, quando o arquivo de marcação da Faixa de Opções é carregado com êxito e, depois, transmite o código para um objeto IRibbonUI.

      Eis um código de exemplo para obter o objeto IRibbonUI, para que você possa atualizar seus controles no tempo de execução.

      Marcação XML:

      <customUI xmlns="https://schemas.microsoft.com/office/2006/01/
      customui" onLoad="ribbonLoaded">
      			

      Em C:

      Grave um retorno de chamada na classe Connect:

         IRibbonUI myRibbon;
      
         public void ribbonLoaded(IRibbonUI ribbon) {
               myRibbon = ribbon;
         }
      
      

      Este objeto apresenta os seguintes métodos:

      Tabela 6. Métodos do objeto IRibbonUI

      Método

      Ação

      Descrição

      Invalidate()

      retorno de chamada

      Marca todos os controles personalizados para atualização

      InvalidateControl(string controlID)

      retorno de chamada

      Marca um controle específico para atualização

      Carregamento de imagens

      O retorno de chamada loadImage destina-se a um retorno de chamada simples que consegue carregar todas as imagens. Após a implementação desse retorno de chamada, o Microsoft Office passa a Cadeia de caracteres do atributo de imagem. Isso evita a necessidade de implementar o retorno de chamada getImage várias vezes. Por exemplo:

      <customUI xmlns="https://schemas.microsoft.com/office/2006/01/
      customui" loadImage="getImages">
         <button id="myButton" image="mypic.jpg" />
      
      			

      O Microsoft Office chama a função getImages com parâmetro mypic.jpg e espera retornar um objeto IPictureDisp.

      Conclusão

      A nova interface do usuário da versão do Microsoft Office 2007 oferece aos usuários uma forma flexível para trabalhar com aplicativos do Office. A personalização da interface do usuário nas versões anteriores do Office representava a criação de suplementos de COM ou arquivos DLL (biblioteca de vínculo dinâmico) para cada aplicativo que compartilhava o suplemento. Comparativamente, o recurso da Faixa de Opções usa marcação XML declarativa e com base em texto que simplifica a criação e personalização da interface do usuário da Faixa de Opções. Com algumas linhas do XML, você consegue criar a interface certa para o usuário. Como a marcação XML está contida em um único arquivo, a modificação da interface em função da alteração das solicitações é muito mais simples. Você também pode aprimorar a produtividade do usuário inserindo comandos onde os usuários possam achá-los com facilidade. A interface do usuário da Faixa de Opções gera consistência entre os aplicativos, reduzindo o tempo gasto no aprendizado de cada aplicativo.

      Para obter informações detalhadas sobre os controles da Faixa de Opções e listas de atributos, consulte Personalizando a interface do usuário da Faixa de Opções do Office (2007) para desenvolvedores (Parte 2 de 2).

      Recursos adicionais

      Para obter mais informações, consulte os seguintes recursos:

      Além disso, você pode encontrar mais informações sobre os seguintes tópicos relacionados: