Partilhar via


Passo a passo: Chamar código do VBA em um projeto do Visual Basic

Este passo a passo demonstra como chamar um método em uma personalização de nível de documento para o Microsoft Office Word a partir do código do Visual Basic for Applications (VBA) no documento. O procedimento envolve três etapas básicas: adicionar um método à ThisDocument classe de item do host, expor o método ao código VBA e, em seguida, chamar o método do código VBA no documento.

Aplica-se a: As informações neste tópico se aplicam a projetos de nível de documento para Excel e Word. Para obter mais informações, consulte Recursos disponíveis por aplicativo do Office e tipo de projeto.

Embora este passo a passo use o Word especificamente, os conceitos demonstrados pelo passo a passo também se aplicam a projetos de nível de documento para Excel.

Este passo a passo ilustra as seguintes tarefas:

  • Criação de um documento que contém código VBA.

  • Confiar na localização do documento utilizando o Centro de Fidedignidade no Word.

  • Adicionando um método à classe de ThisDocument item de host.

  • Expor o método ao código VBA.

  • Chamando o método do código VBA.

Observação

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

Pré-requisitos

Você precisa dos seguintes componentes para concluir este passo a passo:

Criar um documento que contenha código VBA

A primeira etapa é criar um documento habilitado para macro que contenha uma macro VBA simples. O documento deve conter um projeto VBA antes de criar um projeto do Visual Studio baseado nesse documento. Caso contrário, o Visual Studio não pode modificar o projeto VBA para permitir que o código VBA chame o assembly de personalização.

Se você já tiver um documento que contém o código VBA que deseja usar, ignore esta etapa.

Para criar um documento que contenha código VBA

  1. Inicie o Word.

  2. Salve o documento ativo como um Documento do Word com Suporte a Macros (*.docm) chamado DocumentWithVBA. Salve-o em um local conveniente, como a área de trabalho.

  3. Na Faixa de Opções, clique na guia Desenvolvedor .

    Observação

    Se a guia Desenvolvedor não estiver visível, você deverá primeiro mostrá-la. Para obter mais informações, consulte Como mostrar a guia do desenvolvedor na faixa de opções.

  4. No grupo Código , clique em Visual Basic.

    O Editor do Visual Basic é aberto.

  5. Na janela Projeto , clique duas vezes em ThisDocument.

    O arquivo de código para o ThisDocument objeto é aberto.

  6. Adicione o seguinte código VBA ao arquivo de código. Este código define uma função simples que não faz nada. O único objetivo dessa função é garantir que um projeto VBA exista no documento. Isso é necessário para etapas posteriores neste passo a passo.

    Sub EmptySub()
    End Sub
    
  7. Salve o documento e saia do Word.

Criar o projeto

Agora pode criar um projeto de nível de documento para o Word que utiliza o documento ativado para macros que criou anteriormente.

Para criar um novo projeto

  1. Inicie o Visual Studio.

  2. No menu Arquivo , aponte para Novo e clique em Projeto. Se o IDE estiver definido para usar as configurações de desenvolvimento do Visual Basic, no menu Arquivo , clique em Novo Projeto.

  3. No painel de modelos, expanda Visual Basic e, em seguida, expanda Office/SharePoint.

  4. Selecione o nó Suplementos do Office .

  5. Na lista de modelos de projeto, selecione o projeto Documento do Word 2010 ou Documento do Word 2013 .

  6. Na caixa Nome, digite CallingCodeFromVBA.

  7. Clique em OK.

    O Assistente do Projeto de Ferramentas do Visual Studio para Office abre.

  8. Selecione Copiar um documento existente e, na caixa Caminho completo do documento existente , especifique o local do documento DocumentWithVBA que você criou anteriormente. Se estiver a usar o seu próprio documento com macros ativadas, especifique a localização deste documento.

  9. Clique em Concluir.

    O Visual Studio abre o documento DocumentWithVBA no designer e adiciona o projeto CallingCodeFromVBA ao Gerenciador de Soluções.

Confiar na localização do documento

Antes de poder expor o código em sua solução ao código VBA no documento, você deve confiar no VBA no documento a ser executado. Existem várias maneiras de fazer isso. Para este passo a passo, confie no local do documento na Central de Confiabilidade no Word.

Confiar na localização do documento

  1. Inicie o Word.

  2. Clique na guia Arquivo .

  3. Clique no botão Opções do Word .

  4. No painel de categorias, clique em Central de Confiabilidade.

  5. No painel de detalhes, clique em Configurações da Central de Confiabilidade.

  6. No painel de categorias, clique em Locais Confiáveis.

  7. No painel de detalhes, clique em Adicionar novo local.

  8. Na caixa de diálogo Local Confiável do Microsoft Office , navegue até a pasta que contém o projeto CallingCodeFromVBA .

  9. Selecione Subpastas deste local são igualmente confiáveis.

  10. Na caixa de diálogo Local Confiável do Microsoft Office, clique em OK.

  11. Na caixa de diálogo Central de Confiabilidade, clique em OK.

  12. Na caixa de diálogo Opções do Word, clique em OK.

  13. Saia do Word.

Adicionar um método à classe ThisDocument

Agora que o projeto VBA está configurado, adicione um método à ThisDocument classe de item de anfitrião que pode ser chamado a partir do código VBA.

Para adicionar um método à classe ThisDocument

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em ThisDocument.vb e clique em Exibir Código.

    O arquivo ThisDocument.vb é aberto no Editor de Códigos.

  2. Adicione o seguinte método à ThisDocument classe. Este método cria uma tabela com duas linhas e duas colunas no início do documento. Os parâmetros especificam o texto que é exibido na primeira linha. Mais adiante neste passo a passo, você chamará esse método do código VBA no documento.

    Public Sub CreateTable(ByVal firstColumnHeader As String, _
        ByVal secondColumnHeader As String)
    
        Me.Paragraphs(1).Range.InsertParagraphBefore()
        Dim table1 As Word.Table = Me.Tables.Add(Me.Paragraphs(1).Range, 2, 2)
    
        With table1
            .Style = "Table Professional"
            .Cell(1, 1).Range.Text = firstColumnHeader
            .Cell(1, 2).Range.Text = secondColumnHeader
        End With
    End Sub
    
  3. Construa o projeto.

Expor o método ao código VBA

Para expor o CreateTable método ao código VBA no documento, defina a propriedade EnableVbaCallers para o ThisDocument item de host como True.

Para expor o método ao código VBA

  1. No Gerenciador de Soluções, clique duas vezes em ThisDocument.vb.

    O arquivo DocumentWithVBA é aberto no designer.

  2. Na janela Propriedades , selecione a propriedade EnableVbaCallers e altere o valor para True.

  3. Clique em OK na mensagem exibida.

  4. Construa o projeto.

Chame o método do código VBA

Agora você pode chamar o CreateTable método do código VBA no documento.

Observação

Nesta explicação passo a passo, você adicionará código VBA ao documento enquanto depura o projeto. O código VBA que você adicionar a este documento será substituído na próxima vez que você criar o projeto, porque o Visual Studio substitui o documento na pasta de saída de compilação por uma cópia do documento da pasta principal do projeto. Se você quiser salvar o código VBA, você pode copiá-lo para o documento na pasta do projeto. Para obter mais informações, consulte Combinar VBA e personalizações no nível do documento.

Para chamar o método a partir do código VBA

  1. Pressione F5 para executar seu projeto.

  2. Na guia Desenvolvedor , no grupo Código , clique em Visual Basic.

    O Editor do Visual Basic é aberto.

  3. No menu Inserir , clique em Módulo.

  4. Adicione o seguinte código ao novo módulo.

    Esse código chama o método CreateTable na assembly de personalização. A macro acessa esse método usando a CallVSTOAssembly propriedade do ThisDocument objeto. Essa propriedade foi gerada automaticamente quando você definiu a propriedade EnableVbaCallers anteriormente nesta explicação passo a passo.

    Sub CreateTable()
        Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date")
    End Sub
    
  5. Pressione F5.

  6. Verifique se uma nova tabela foi adicionada ao documento.

  7. Saia do Word sem guardar as alterações.

Próximos passos

Você pode saber mais sobre como chamar código em soluções do Office do VBA nestes tópicos: