Atualizado por Brad Jones em 25 de agosto de 2017.
Durante sua semana de trabalho, provavelmente há várias vezes em que você se encontra copiando e colando informações do Microsoft Excel para o Word ou vice-versa.
É assim que as pessoas costumam produzir relatórios escritos com base em dados acumulados e atualizados em uma planilha. O Excel é um ótimo programa para tudo, desde a criação de gráficos com aparência profissional. 6 Novos Gráficos do Excel e Como Usá-los 6 Novos Gráficos do Excel e Como Usá-los Precisa obter mais de seus gráficos do Excel? Aqui está um guia completo para alguns dos novos gráficos apresentados na versão mais recente do Excel. Leia mais, para configurar um rastreador de gerenciamento de projetos 10+ Modelos úteis do Excel para Gerenciamento e Rastreamento de Projetos 10+ Modelos úteis do Excel para Gerenciamento de Projetos e Modelos de Rastreamento são para gerentes de projeto quais facas são para chefs profissionais: indispensáveis. Mostramos como você pode replicar projetos bem-sucedidos usando modelos prontos no Microsoft Excel e além. Leia mais - mas quando se trata de escrever um relatório, o Word é uma ferramenta muito melhor.
Neste artigo, vamos nos aprofundar no script de VBA em segundo plano que permite programar conexões entre dados armazenados em um arquivo do Excel e documentos do Word nos quais você está produzindo relatórios.
É surpreendentemente fácil integrar os dados do Microsoft Excel no Microsoft Word quando você sabe como adicionar as referências corretas e como definir a sintaxe do código VBA em segundo plano.
Configurando a planilha
Neste exemplo, vou começar com uma planilha do Excel bastante simples. Na prática, o arquivo do Excel pode consistir em várias planilhas com muitos dados - não importa.
Contanto que você saiba onde encontrar os dados na planilha, você será capaz de acessar e agarrá-lo usando o VBA Como enviar e-mails de uma planilha do Excel usando Scripts VBA Como enviar e-mails de uma planilha do Excel usando scripts VBA mostrará como configurar emails automáticos a partir do Excel usando os scripts Collaboration Data Objects, (CDO) e VBA. Nossos modelos de código tornam isso muito mais fácil do que parece! Consulte Mais informação .
Aqui está a aparência da minha planilha de amostra. É uma lista de totais de despesas que foram calculados durante todo o ano.
Configurando o documento do Word
Digamos que você tenha um gerente que gostaria de ver um relatório bem formatado que descreva as despesas, agrupando itens e apresentando as informações em um layout que seja um pouco mais esteticamente agradável.
Você pode fazer isso incorporando objetos como caixas de texto e rótulos em seu documento do Word. Quando você está no Word, basta clicar na guia do menu Desenvolvedor e, em seguida, selecionar "Modo Design" na seção Controles . Use o ícone suspenso Ferramentas herdadas para inserir vários elementos diferentes em seu documento.
Use este menu para inserir um rótulo .
Depois de colocar o rótulo no documento que você deseja (nem sempre é uma tarefa fácil), você estará pronto para programar o feed de dados. Mas primeiro, você precisará nomear o rótulo para que o VBA possa identificá-lo. Clique com o botão direito do mouse no rótulo e vá para Propriedades . Encontre o campo (Nome) e chame-o de algo que você vai lembrar.
Agora, adicione um botão de comando da mesma lista suspensa de ferramentas herdadas e clique duas vezes nele para abrir o editor de VBA. Quando você obtém seu código trabalhando mais tarde, você pode modificá-lo para que o código seja executado no evento Document Open () . Você verá isso nas caixas suspensas de objetos na janela do editor.
Trabalhando com o VBA
Para começar a conectar o Word ao Excel, você precisará fazer referência ao último no VBA. O Tutorial de Programação do Excel VBA para Iniciantes O Tutorial de Programação do Excel VBA para Iniciantes O VBA é uma ferramenta avançada do Microsoft Office. Você pode usá-lo para automatizar tarefas com macros, definir acionadores e muito mais. Apresentaremos a programação básica visual do Excel com um projeto simples. Consulte Mais informação .
Prepare a Importação de Dados do Excel
Clique em Ferramentas e, em seguida, em Referências . Role a lista até ver a Biblioteca de objetos do Microsoft Excel 16.0 e selecione-a.
Depois de fazer isso, o restante é apenas uma questão de escrever um script VBA ridiculamente simples para extrair dados de uma planilha do Excel e atualizar automaticamente a legenda do rótulo com os dados.
Aqui está o código:
Private Sub CommandButton1_Click () Dim objExcel Como Novo Excel.Application Dim exWb Como Excel.Workbook Set exWb = objExcel.Workbooks.Open ("C: \ Usuários \ Brad \ Desktop \ expenses.xlsx") ThisDocument.total_expenses.Caption = exWb. Sheets ("Sheet1"). Cells (12, 2) exWb.Fechar Set exWb = Nothing End Sub
Veja como isso funciona? O objeto de aplicativo Excel "exWb" abre o arquivo do Microsoft Excel no caminho fornecido, e ele vai direto para a planilha específica e o número da célula, extrai os dados e coloca-os na propriedade Caption do rótulo que nomeei total_expenses . Tudo o que você precisa editar no seu script é o caminho do arquivo e o nome do rótulo.
Teste sua macro
Para testar seu botão de comando, salve seu documento, lembrando-se de especificar que você deseja um Documento habilitado para macro do Word para que seu código funcione.
Aqui está a macro VBA em ação.
Integrar rótulos do Excel
A parte difícil de lidar com rótulos no Word é que às vezes é difícil alinhá-lo no final de uma frase ou ao lado de qualquer outro texto.
Uma maneira de superar isso é realmente incorporar parte do texto ao lado dos dados no próprio código do VBA. Como você pode ver aqui, coloquei o texto estático diretamente na legenda ao criar o rótulo em si.
Agora, tudo o que você precisa fazer é incluir esse texto quando atualizar o rótulo com seu script VBA e apenas acrescentar os dados do arquivo do Microsoft Excel ao final desse texto.
Aqui está como esse tipo de código seria.
Dim objExcel Como Novo Excel.Application Dim exWb Como Excel.Workbook Set exWb = objExcel.Workbooks.Open ("c: \ Usuários \ Brad \ Desktop \ expenses.xlsa") ThisDocument.total_expenses.Caption = exWb.Sheets ("Sheet1" ) .Células (12, 2) ThisDocument.total_hotels.Caption = "Hotels:" & exWb.Sheets ("Sheet1"). Células (5, 2) ThisDocument.total_dining.Caption = "Jantar Fora:" & exWb.Sheets ( "Sheet1"). Células (2, 2) ThisDocument.total_tolls.Caption = "Tolls:" & exWb.Sheets ("Sheet1"). Células (3, 2) ThisDocument.total_fuel.Caption = "Fuel:" & exWb. Sheets ("Sheet1"). Cells (10, 2) exWb.Fechar Set exWb = Nothing
Você pode usar a concatenação de string “&” para colocar o texto estático com os dados extraídos da planilha do Excel. Veja como são os resultados finais no documento atualizado do Word:
Levando as coisas adiante
Se você deseja testar suas habilidades, por que não automatizar seu relatório? 5 Recursos para macros do Excel para automatizar suas planilhas Procurando macros do Excel? Aqui estão cinco sites que têm o que você está procurando. Leia mais ainda mais? Você pode remover o botão de comando cinza feio do documento do Microsoft Word, simplesmente executando o script de atualização de dados no Document.Open () - todo o processo ocorrerá nos bastidores.
Isso significa que, em muitos casos, você poderia criar o documento inicial uma vez e nunca mais precisar criá-lo novamente. Tudo o que você precisa fazer é abri-lo e todas as etiquetas serão atualizadas automaticamente para você com os dados do arquivo atualizado do Microsoft Excel. Basta clicar em Imprimir e enviar o relatório ao seu gerente. Um trabalho de 30 minutos acabou de se transformar em uma impressão de um minuto!
Você consegue pensar em algum outro uso interessante para essa técnica de integração de dados usando o VBA? Compartilhe algumas de suas próprias ideias e pensamentos na seção de comentários abaixo.
Crédito da imagem: Punyaphat Larpsomboon via Shutterstock.com