Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este passo a passo demonstra como chamar um método em uma personalização de nível de documento do 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 à classe de item de ThisDocument 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 Os recursos disponíveis pelo aplicativo do Office e pelo 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:
Criando um documento que contém código VBA.
Confiar na localização do documento usando a Central de Confiabilidade no Word.
Adicionando um método à classe de item de
ThisDocumenthost.Expondo o método ao código VBA.
Chamando o método do código VBA.
Observação
Seu computador pode mostrar diferentes nomes ou locais 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, confira Personalizar o IDE do Visual Studio.
Pré-requisitos
Você precisará dos seguintes componentes para concluir este passo a passo:
Uma edição do Visual Studio que inclui as ferramentas de desenvolvedor do Microsoft Office. Para obter mais informações, consulte Configurar um computador para desenvolver soluções do Office.
Microsoft Word
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 do VBA antes de criar um projeto do Visual Studio baseado nesse documento. Caso contrário, o Visual Studio não conseguirá modificar o projeto VBA para que o código VBA possa chamar o assembly de personalização.
Se você já tiver um documento que contenha código VBA que deseja usar, ignore esta etapa.
Para criar um documento que contenha código VBA
Inicie o Word.
Salve o documento ativo como um Documento habilitado para macro do Word (*.docm) com o nome DocumentWithVBA. Salve-o em um local conveniente, como a área de trabalho.
Na Faixa de Opções, clique na guia Desenvolvedor .
Observação
Se a guia Desenvolvedor não estiver visível, primeiro você deverá mostrá-la. Para obter mais informações, consulte Como mostrar a guia desenvolvedor no Ribbon.
No grupo Código , clique em Visual Basic.
O Editor do Visual Basic é aberto.
Na janela Projeto , clique duas vezes em ThisDocument.
O arquivo de código do
ThisDocumentobjeto é aberto.Adicione o código VBA a seguir ao arquivo de código. Esse código define uma função simples que não faz nada. A única finalidade dessa função é garantir que um projeto VBA exista no documento. Isso é necessário para etapas posteriores neste passo a passo.
Sub EmptySub() End SubSalve o documento e saia do Word.
Criar o projeto
Agora você pode criar um projeto de nível de documento no Word que utiliza o documento habilitado para macros que você criou anteriormente.
Para criar um novo projeto
Inicie o Visual Studio.
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.
No painel modelos, expanda o Visual Basic e expanda o Office/SharePoint.
Selecione o nó Suplementos do Office .
Na lista de modelos de projeto, selecione o documento do Word 2010 ou o projeto documento do Word 2013 .
Na caixa Nome , digite CallingCodeFromVBA.
Clique em OK.
O Assistente de Projeto das Ferramentas do Visual Studio para Office é aberto.
Selecione Copiar um documento existente e, no caminho completo da caixa de documento existente , especifique o local do documento DocumentWithVBA criado anteriormente. Se você estiver usando seu próprio documento habilitado para macro, especifique a localização deste documento.
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 expor o código em sua solução ao código VBA no documento, você deve confiar no VBA no documento a ser executado. Há várias maneiras de fazer isso. Para este passo a passo, confie no local do documento na Central de Confiabilidade no Word.
Para confiar na localização do documento
Inicie o Word.
Clique na guia Arquivo .
Clique no botão Opções do Word .
No painel categorias, clique em Central de Confiabilidade.
No painel de detalhes, clique em Configurações da Central de Confiabilidade.
No painel categorias, clique em Locais Confiáveis.
No painel de detalhes, clique em Adicionar novo local.
Na caixa de diálogo Local Confiável do Microsoft Office , navegue até a pasta que contém o projeto CallingCodeFromVBA .
As subpastas selecionadas desse local também são confiáveis.
Na caixa de diálogo Local Confiável do Microsoft Office , clique em OK.
Na caixa de diálogo Central de Confiabilidade , clique em OK.
Na caixa de diálogo Opções do Word , clique em OK.
Saia do Word.
Adicionar um método à classe ThisDocument
Agora que o projeto VBA está configurado, adicione um método à ThisDocument classe do item host que você pode chamar no código VBA.
Para adicionar um método à classe ThisDocument
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ódigo.
Adicione o método a seguir à classe
ThisDocument. Esse método cria uma tabela com duas linhas e duas colunas no início do documento. Os parâmetros especificam o texto exibido na primeira linha. Posteriormente, 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 SubCompile 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 item de ThisDocument host como True.
Para expor o método ao código VBA
No Gerenciador de Soluções, clique duas vezes ThisDocument.vb.
O arquivo DocumentWithVBA é aberto no designer.
Na janela Propriedades , selecione a propriedade EnableVbaCallers e altere o valor para True.
Clique em OK na mensagem exibida.
Compile o projeto.
Chamar o método do código VBA
Agora você pode chamar o CreateTable método do código VBA no documento.
Observação
Neste passo a passo, você adicionará o código VBA ao documento durante a depuração do projeto. O código VBA adicionado a este documento será substituído na próxima vez que você compilar o projeto, pois o Visual Studio substitui o documento na pasta de saída de build por uma cópia do documento da pasta principal do projeto. Se você quiser salvar o código VBA, poderá copiá-lo no documento na pasta do projeto. Para obter mais informações, consulte Combinar personalizações em nível de documento e VBA.
Para chamar o método do código VBA
Pressione F5 para executar o projeto.
Na guia Desenvolvedor , no grupo Código , clique em Visual Basic.
O Editor do Visual Basic é aberto.
No menu Inserir , clique em Módulo.
Adicione o código a seguir ao novo módulo.
Esse código chama o método
CreateTableno assembly de personalização. A macro acessa esse método usando aCallVSTOAssemblypropriedade doThisDocumentobjeto. Essa propriedade foi gerada automaticamente quando você definiu a propriedade EnableVbaCallers anteriormente neste passo a passo.Sub CreateTable() Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date") End SubPressione F5.
Verifique se uma nova tabela foi adicionada ao documento.
Saia do Word sem salvar suas alterações.
Próximas etapas
Você pode saber mais sobre como chamar código em soluções do Office do VBA nestes tópicos:
Execute código em uma personalização de Visual C# a partir do VBA. Esse processo é diferente do processo do Visual Basic. Para obter mais informações, consulte Passo a passo: chamar código do VBA em um projeto do Visual C#.
Executar código em um VSTO Add-in a partir do VBA. Para obter mais informações, consulte Passo a passo: Chamar código em um Add-in VSTO a partir do VBA.