Controle o Word do Excel usando VBA no Microsoft Excel 2010

Anonim

Muitas vezes, você precisa copiar dados de um arquivo do Excel para um documento do Word. Você pode fazer isso com uma macro muito facilmente. A macro abrirá um documento do Word novo / existente, copiará o conteúdo e, em seguida, salvará e fechará o documento do Word. Vamos ver como isso é feito.

O código que você pode usar é -

Opção Explícita

Sub CreateNewWordDoc ()
Dim i As Integer
Dim wrdApp As Object, wrdDoc As Object
Defina wrdApp = CreateObject (“Word.Application”)
wrdApp.Visible = True
Defina wrdDoc = wrdApp.Documents.Add
Com wrdDoc
Para i = 1 a 100
.Content.InsertAfter “Aqui está um exemplo de linha de teste #” e i
.Content.InsertParagraphAfter
Proximo eu
If Dir (“B: \ Test \ MyNewWordDoc.docx”) “” Então Mate “B: \ Test \ MyNewWordDoc.docx”
.SaveAs (“B: \ Test \ MyNewWordDoc.docx”)
.Fechar
Terminar com
wrdApp.Quit
Definir wrdDoc = Nada
Definir wrdApp = Nothing
End Sub

Para copiar o código acima para o seu arquivo,

  • Pressione Alt + F11 no teclado
  • No lado esquerdo, você verá objetos do Microsoft Excel
  • Clique com o botão direito e selecione Inserir
  • Em seguida, clique em Módulo
  • Copie o código para a janela de código à direita

Agora vamos ver como esse código funciona -

Primeiro, declaramos as variáveis ​​de que precisamos -i como inteiros para incrementar cada linha à medida que ela é preenchida do arquivo Excel para a palavra doc. Em seguida, as 2 variáveis ​​de objeto wrdApp e wrdDoc, wrdApp é o objeto Aplicativo do Word e wrdDoc é o objeto Documento do Word.

Defina wrdApp = CreateObject (“Word.Application”)

Se o Word já estiver sendo executado em seu sistema,CreateObject irá criar uma nova instância do Word. Portanto, esta linha atribui a variável de objeto wrdApp ao aplicativo Word, que você pode usar posteriormente no código.

wrdApp.Visible = True

A instância recém-criada do Word não ficará visível quando for criada. Para torná-lo visível, você precisa definir wrdApp.Visible = True para que seja visível.

Defina wrdDoc = wrdApp.Documents.Add

Criamos a nova instância do aplicativo do Word, mas ainda não abrimos um documento do Word em branco. Portanto, este comando abrirá um novo documento do Word. O objeto wrdDoc foi atribuído a este novo documento para que possamos usá-lo posteriormente no código.

Caso você não queira abrir uma nova pasta de trabalho, mas abra uma pasta de trabalho existente, então você pode substituir esta linha por

Defina wrdDoc = wrdApp.Documents.Open (“B: \ My Documents \ WordDocs \ Doc1.docx”)

Esta linha abre um documento do Word existente que foi salvo no local especificado.

Com wrdDoc… .End With

Este é o nosso loop “With” que funcionará inteiramente com o objeto wrdDoc. Depois de abrir este loop, não é necessário repetir o texto “wrdDoc” novamente neste loop. Você pode começar diretamente com o ponto (“.”) Antes de qualquer objeto relacionado ao wrdDoc. Este loop termina com o Terminar com demonstração. Uma vez que a instrução End With foi inserida, você não pode se referir aos objetos após wrdDoc apenas com o “.”.

Para i = 1 a 100
.Content.InsertAfter “Aqui está um exemplo de linha de teste #” e i
.Content.InsertParagraphAfter
Proximo eu

Este é o loop “For”. Ele aumenta de 1 a 100 e, a cada incremento, insere uma linha com o texto “Aqui está um exemplo de linha de teste #” e adiciona o número do incremento. Em seguida, ele insere uma quebra de linha / quebra de parágrafo para que o próximo incremento apareça na próxima linha, como um novo parágrafo.

Portanto, este processo será repetido 100 vezes, uma vez que os estados do loop for Para i = 1 a 100. Esta é a saída que você obterá -

If Dir (“B: \ Test \ MyNewWordDoc.Docx”) “” Então Mate “B: \ Test \ MyNewWordDoc.docx”

.SaveAs (“B: \ Test \ MyNewWordDoc.docx”)

.Fechar

Assim que o loop “For” for concluído, o código verificará se o arquivo MyNewWordDoc.docx existe. Em caso afirmativo, ele o excluirá. Em seguida, ele salvará o novo arquivo com o mesmo nome e fechará o arquivo.

wrdApp.Quit

Definir wrdDoc = Nada
Definir wrdApp = Nothing

A palavra aplicação é fechada e então os 2 objetos que foram criados serão liberados ou colocados em “Nada”, para que a memória ocupada por estes objetos seja liberada. Este é o código completo que cuida de copiar o conteúdo do Excel para o Word.