Do Básico ao Avançado
Home  Tutoriais  Artigos  Contato

Macro Para Salvar a Página Atual Em Um Novo Documento

Com essa macro você poderá salvar a página atual como um novo arquivo no Word.

Por exemplo digamos que você tem um documento com várias páginas e surge a necessidade de criar um novo documento com o conteúdo de uma determinada página, provavelmente você iria selecionar o conteúdo da página e copiar, em seguida você abriria um novo documento em branco e colaria os dados neste novo documento.

Neste tutorial criaremos uma macro e daremos a ela o nome de SalvaPagAtual, essa macro salvará a página atual como um novo documento, ou seja, ao executar a macro a página onde o cursor intermitente do teclado (ponto de inserção) estiver posicionado será salvo como um documento separado.

Abra um novo documento no Word (documento em branco) e em seguida abra o Editor do Visual Basic clicando na Guia Desenvolvedor e no grupo Código clique em Visual Basic ou se preferir pressione as teclas de atalho ALT + F11. Se não encontrar a guia Desenvolvedor junto a barra de guias principais do Word acesse o tutorial https://www.tutoriaisword.com/Como-ativar-a-guia-desenvolvedor-no-word-365.htm e veja como ativar a Guia Desenvolvedor.

Editor do Visual Basic

No Editor do Visual Basic clique no sinal de + que aparece ao,lado de Normal para expandir as opções, depois dê um duplo clique em ThisDocument para exibir a janela de código. Ao inserir a macro no Projeto Normal fará com que a macro fique disponível em todos os documentos.

ThisDocument

Caso queira que macro esteja disponível somente no documento atual clique no menu Inserir e depois em Módulo.

Inserir Módulo

Na janela de código adicione o seguinte código:

Sub SalvaPagAtual()
'Declara as variáveis
Dim vDoc As Document
Dim vNovoDoc As Document
Dim vNomeArq As String
Dim vCaminho As Variant
Dim vCxDialogo As FileDialog
Set vDoc = ActiveDocument
vNomeArq = InputBox("Insira um Nome para o Novo documento: ", "Salvar Página Atual")
If vNomeArq = "" Then Exit Sub 'Se nenhum nome for adicionado a macro é encerrada e sai do procedimento
Set vCxDialogo = Application.FileDialog(msoFileDialogFolderPicker)
If vCxDialogo.Show = -1 Then 'Exibe a caixa de diálogo para selecionar a pasta onde o arquivo deverá ser salvo
vCaminho = vCxDialogo.SelectedItems(1)
      vDoc.Bookmarks("\Page").Range.Select 'Seleciona a página atual
Selection.Copy 'copia a página selecionada
Set vNovoDoc = Documents.Add 'Abre um documento em branco (novo documento)
Selection.Paste 'Cola o conteúdo da página selecionada
vNovoDoc.SaveAs vCaminho & "\" & vNomeArq & ".docx" 'Salva o novo documento
vNovoDoc.Close 'Fecha o novo documento
End If
End Sub


Deverá ficar como a imagem abaixo:

Código VBA

Explicando o código:

Os textos na cor verde são comentários que inseri para que aqueles que estão dando seu primeiros passos em VBA possam mais facilmente compreender o código, mas mesmo assim darei uma breve explicação de algumas linhas do código.

Nome da Macro

Sempre iniciamos um código no VBA escrevemos Sub seguido do nome da macro e no final do código temos o End Sub que indica o término do código.

Sub SalvaPagAtual

(rotina...)

End Sub


Declaração de variáveis

O que é uma variável?

Uma variável é um valor que fica armazenado na memória do computador enquanto o procedimento está sendo executado, sendo removida da memória assim que o procedimento termina.

Porque devemos declarar uma variável?

Embora a declaração de uma variável não seja obrigatória no VBA, ela é altamente recomendável para agilizar o sistema informando que determinada informação será armazenada. É importante declarar uma variável principalmente quando se necessita de utilizar um valor específico inúmeras vezes e também pelo fato de que a execução do código será mais rápida.

Regras para nomear as variáveis em VBA

Ao nomear uma variável devem-se obedecer às seguintes regras:

· Não utilizar pontos, espaços, vírgulas, pontos de exclamação ou símbolos especiais (#, @, $, &, %, etc);

· O nome deve ter menos de 255 caracteres;

· Não utilizar palavras reservadas do sistema, por exemplo no Word, não podemos empregar termos como Document, ThisDocument, Formfields, etc;

· Todo nome de variável deve iniciar com uma letra.

No código acima declaramos algumas variáveis com o tipo associado à natureza da informação que desejamos armazenar, por exemplo: String = permite armazenar conjunto de caracteres.


Função InputBox

É uma caixa de mensagem mais interativa, pois nela o usuário pode inserir dados, e no código desta macro usamos a função InputBox para que o usuário possa inserir o nome que deseja dar ao novo documento que será gerado. Veja um exemplo abaixo:

Função InputBox

Se nada for informado na InputBox a macro é encerrada e o novo documento não será gerado.

Se o usuário informar o nome na InputBox será aberta a caixa de diálogo para selecionar a pasta onde deseja salvar o novo documento.


Como utilizar a macro.

Feche o Editor do Visual Basic para voltar ao Word clicando em Arquivo e depois em Fechar e voltar para Microsoft Word.

Fechar o Editor do Visual Basic

Posicione o cursor na página que você deseja salvar como um arquivo separado e em seguida na Guia Desenvolvedor, no grupo Código clique em Macros.

Macros

Na caixa de diálogo Macro selecione a macro SalvaPagAtual e clique no botão Executar.

Executar Macro

Surgirá a InputBox para você informar o nome do Novo Documento.

InputBox

Após informar o nome do novo documento na InputBox será exibido a Caixa de Diálogo Procurar para você possa selecionar a pasta onde deseja salvar o novo documento.

Procurar Pasta

Consideração Final:

No exemplo deste tutorial a macro salva a página atual como um documento separado no formato .docx. Se quiser salvar no formato .pdf altere a seguinte linha do código:

vNovoDoc.SaveAs vCaminho & "\" & vNomeArq & ".docx"

para

vNovoDoc.SaveAs vCaminho & "\" & vNomeArq & ".pdf"






eBook Word 2010 VBA

Formação Pacote Office
Política de Privacidade  |   © 2013 Tutoriais Word - Todos os direitos reservados