Inserir texto no rodapé do documento
Neste tutorial criaremos uma macro para Inserir texto no rodapé do documento. Criaremos diretamente através do Editor do Visual Basic a macro que automatiza a inserção de texto no rodapé de um documento.
No documento, mostrado na imagem abaixo, iremos adicionar um texto em seu rodapé.
Vamos, então, criar a macro (código VBA) que irá adicionar o texto ao rodapé do documento de forma automática.
Na Guia Desenvolvedor, no Grupo Código clique em Visual Basic.
No ambiente de desenvolvimento VBA clique no menu Inserir e em seguida clique em Módulo.
Na Janela de Código adicione o seguinte código:
Sub textonorodape()
Dim myText As Range
WordBasic.ViewFooterOnly
For Each myText In ActiveDocument.StoryRanges
Select Case myText.StoryType
Case Is = 8, 9, 11
Do
myText.Collapse Direction:=wdCollapseEnd
myText.InsertAfter vbCr & "Digite seu texto aqui"
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
Set myText = myText.NextStoryRange
Loop Until myText Is Nothing
Case Else
End Select
Next
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub
Ficará como na imagem abaixo:
Agora feche o Editor do Visual Basic para voltar ao documento através do menu Arquivo >> Fechar e voltar para Microsoft Word.
Salve o documento como Documento Habilitado para Macro do Word, em seguida acione a Guia Desenvolvedor e no Grupo Código clique em Macros.
Selecione a macro textonorodape e clique em Executar.
Veja o resultado:
Considerações Finais:
Para alterar o alinhamento do texto inserido rodapé, basta alterar a propriedade de alinhamento do parágrafo na linha de código correspondente.
Alinhamento à esquerda:
Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
Alinhamento centralizado:
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Alinhamento à esquerda:
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
Alinhamento Justificado:
Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
A partir deste pequeno exemplo você pode também criar um formulário para que o usuário digite o texto e selecione o alinhamento desejado.
Veja um exemplo:
Crie um formulário como na imagem abaixo.
No evento Initialize do Formulário adicione o código abaixo:
Private Sub UserForm_Initialize()
With ComboBox1 'Adiciona os itens da Caixa de Combinação
.AddItem ""
.AddItem "Esquerda"
.AddItem "Direita"
.AddItem "Centralizado"
.AddItem "Justificado"
End With
End Sub
No evento Click do botão Inserir insira o seguinte código:
Private Sub CommandButton1_Click()
Dim myText As Range
On Error GoTo CommandButton1_Click_Err
WordBasic.ViewFooterOnly
For Each myText In ActiveDocument.StoryRanges
Select Case myText.StoryType
Case Is = 8, 9, 11
Do
myText.Collapse Direction:=wdCollapseEnd
'Pega o texto da Caixa de Texto
myText.InsertAfter vbCr & TextBox1.Text
'Aplica o alinhamento conforme selecionado na Caixa de Combinação
If ComboBox1.Text = "Esquerda" Then
Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
ElseIf ComboBox1.Text = "Direita" Then
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
ElseIf ComboBox1.Text = "Centralizado" Then
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
ElseIf ComboBox1.Text = "Justificado" Then
Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
End If
Set myText = myText.NextStoryRange
Loop Until myText Is Nothing
Case Else
End Select
Next
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
CommandButton1_Click_Fim:
Exit Sub
CommandButton1_Click_Err:
MsgBox "Erro n. " & Err.Number & " - " & Err.Description
Resume CommandButton1_Click_Fim
End Sub
No evento Click do botão Fechar insira o seguinte código:
Private Sub CommandButton2_Click()
Unload Me 'Fecha o formulário
End Sub
Ficará como na imagem abaixo:
Gostou? Se quiser mais eu tenho um e-Book sobre VBA que você pode se interessar.
Confira aqui