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:
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á.
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:
Veja o exemplo do contrato gerado:
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!
Para acessar outras publicações de VBA, clique aqui!
Quer aprender mais sobre VBA com um Minicurso Gratuito?
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.