Blog

Postado em em 9 de julho de 2022

Contrato de Locação no VBA – Integração do VBA com Word

Quer saber como criar um contrato de locação no VBA e fazer a integração do VBA com o Word para automatizar seu trabalho?

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Fala, Impressionadores! Hoje nós vamos estar criando contrato de locação automaticamente com a ajuda do VBA!

A ideia é preencher contrato com VBA de forma totalmente automática utilizando as informações que estão dentro de uma planilha do Excel.

Com isso podemos fazer a integração do VBA com Word e para isso vamos criar objeto word no VBA (no vídeo mostro com detalhes), vamos ver a estrutura de repetição for, msgbox e alguns outros comandos.

Com isso vamos poder pegar as informações da planilha em Excel para preencher todos os campos necessários dentro do contrato de locação no Word.

Claro que você vai poder adaptar para outros tipos de contratos ou o que precisar para poder preencher suas informações.

Ativando referências no VBA

Precisaremos utilizar uma biblioteca específica do Excel/VBA para nos auxiliar na aula de hoje. Portanto, precisaremos ativá-la para fazer esses procedimentos a seguir.

Precisamos primeiramente abrir o ambiente de VBA, a partir do atalho do teclado Alt(+Fn)+F11.

Logo após você terá, com o VBA aberto, que:

  • Ir na guia Ferramentas
  • Optar por Referências…
  • Marcar as caixinhas correspondentes ao “Microsoft Word”
    0 3
  • OK

Inserindo um Módulo no VBA

Para criar um código dentro do VBA geralmente criamos um módulo. Para criá-lo precisamos primeiramente abrir o ambiente de VBA, a partir do atalho do teclado Alt(+Fn)+F11.

Vamos na guia Inserir > Módulo, e uma caixa branca se abrirá.

Contrato de Locação no VBA

Por padrão ele terá o nome de “Módulo 1”. Colocaremos a seguinte sub dentro dele:

Sub gera_contrato()

Set objWord = CreateObject("Word.Application")
objWord.Visible = True

Set arqContrato = objWord.Documents.Open(ThisWorkbook.Path & "Modelo.docx")
Set conteudoDoc = arqContrato.Application.Selection

ultCol = Range("A1").End(xlToRight).Column

For colTab = 1 To ultCol

    conteudoDoc.Find.Text = Cells(1, colTab).Value
    conteudoDoc.Find.Replacement.Text = Cells(2, colTab).Value
    conteudoDoc.Find.Execute Replace:=wdReplaceAll

Next

arqContrato.SaveAs2 (ThisWorkbook.Path & "Contrato - " & Cells(2, 1).Value & ".docx")

arqContrato.Close

objWord.Quit

Set arqContrato = Nothing
Set conteudoDoc = Nothing
Set objWord = Nothing

MsgBox ("Contrato gerado com sucesso!")

End Sub

Explicação do código acima:

  • Vamos “setar” uma variável chamada “objWord” que representará o objeto do programa do Word em si, que vai ser criado no começo
  • Vamos fazer com que o objWord seja visível, para que possamos ver o resultado do código nele colocando sua propriedade Visible como True
  • Vamos “setar” uma variável chamada “arqContrato” que representará o objeto do arquivo a ser aberto, que de fato vai ser o arquivo modelo de contrato, que vai estar no caminho da pasta do arquivo em Excel (dada pelo comando Path) concatenado com “Modelo.docx”
  • Vamos “setar” uma variável chamada “conteudoDoc” que representará a seleção dentro do programa do Word, a partir da qual vamos fazer as modificações
  • Armazenar na variável “ultCol” o resultado da coluna dada pela última coluna preenchida a partir da célula A1, quando exploramos os dados à direita dela, na mesma linha
  • Vamos usar de uma estrutura de repetição For no VBA para repetir ações da coluna 1 até a coluna dada pela variável “ultCol” (porque sabemos que nossos dados estão nas colunas 1 (A) até 25 (Y) do arquivo em Excel), e eles que vão ser informações a serem substituídas diretamente no arquivo modelo no Word. As ações serão:
    • A cada coluna analisada (dada pela variável “colTab”), vamos pesquisar/procurar no Word o que estiver na nossa primeira linha de cabeçalho da tabela do Excel
    • Quando encontrado, substituir o que estiver na nossa segunda linha no Excel, de fato o que tiver de informação na tabela
    • Em seguida executar a substituição em todas as ocorrências dentro do documento do Word
  • Quando todas as substituições forem feitas, vamos salvar o arqContrato através do método SaveAs2 concatenando o caminho do arquivo com o que estiver na célula A2 da nossa planilha em Excel, que é o “(NOME LOCADOR)”
  • Após tudo ser feito, iremos por boas práticas fechar (close, em inglês) o documento em word (arqContrato)
  • Em seguida aplicaremos o método Quit na variável que representa o Word (objWord) para que ele seja fechado
  • Por boas práticas vamos esvaziar as variáveis “arqContrato”, “conteudoDoc” e “objWord” (Nothing) para que elas não fiquem armazenadas o tempo inteiro na memória do computador enquanto o arquivo está aberto no Excel
  • Será gerada uma mensagem ao final do código (MsgBox) informando que o contrato foi gerado com sucesso
  • Se encerra o código

Veja o exemplo do contrato gerado:

Contrato de Locação no VBA

Conclusão – Contrato de Locação no VBA

Nessa aula você lidou com os seguintes conceitos:

Valeu, Impressionadores! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA toda semana aqui com a gente! Um abraço!

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um Minicurso Gratuito?


Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador