geremias Qui 26 maio 2022, 10:45 pm
Vamos lá.
vou tentar me explicar melhor
Basicamente eu uso esse código para carregar as informações para o Documento do Word chamado “Contrato.doc” onde estão os bookmarks que receberam as informações do aplicativo.
- Código:
Dim DocWord As Object
Set DocWord = CreateObject("Word.Application")
With DocWord
.Visible = False
.Documents.Add Template:=CurrentProject.path & "\Contrato.doc", NewTemplate:=False, DocumentType:=0
.ActiveDocument.Bookmarks("Texto1").Select: .Selection.Text = Me!txtNomeLocador
.ActiveDocument.Bookmarks("Texto2").Select: .Selection.Text = Me!txtCPFLocador
.ActiveDocument.Bookmarks("Texto3").Select: .Selection.Text = Me!txtRGLocador
.ActiveDocument.Bookmarks("Texto4").Select: .Selection.Text = Me!txtLocatario
.ActiveDocument.Bookmarks("Texto5").Select: .Selection.Text = Me!txtCPFLocatario
.
.
.
.
.
.
.
.ActiveDocument.SaveAs CurrentProject.path & "\" & Format(Me.IdCons, "000000") & ".doc"
.ActiveDocument.Close
End With
DocWord.Quit
Set DocWord = Nothing
Dim nArquivo As String
nArquivo = CurrentProject.path & "\" & Format(Me.IdCons, "000000") & ".doc"
Call ShellExecute(0, vbNullString, nArquivo, vbNullString, vbNullString, 1)
Até aí ok, funcionando sem problemas.
A ideia seria poder dar a facilidade de o usuário poder personalizar o documento inserindo, pelo access, informações no cabeçalho e/ou rodapé do documento.
Eu teria um form onde o usuário selecionaria a Imagem ou logo criado por ele e colocaria no cabeçalho do documento. A parte de como localizar o caminho da imagem eu achei aqui no fórum um exemplo que atendeu muito bem para fazer isso.
Entretanto a dificuldade está em implementar o código VBA para inserir essa imagem no local correto dentro do cabeçalho do documento.
Para que fique como na imagem de exemplo Genérico) que anexei:
Do lado esquerdo a logomarca da empresa/escritório/pessoa, no centro uma caixa de texto ou bookmark para receber o texto personalizado do documento (IMOBILIÁRIA DO PASCOAL – SEU IMÓVEL ESTÁ AQUI) ou logotexto personalizado e a direita segunda logomarca ou ainda numeração de páginas.
Algo assim.
A dificuldade que encontro aqui é exatamente como indicar via VBA que o conteúdo a ser inserido deve ser no Cabeçalho do documento.
como disse inserir informações e imagens no corpo do texto já esta implementado via código.
já vi, em sites específicos de word como criar uma macro, pelo próprio word, mas não consegui fazer funcionar pelo VBA do Access.
vejam:
- Código:
Sub TEXT()
'
' TEXT Macro
'
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.Font.Name = "Shonar Bangla"
Selection.Font.Size = 17
Selection.Font.Bold = False
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.TypeText TEXT:="Alessandro Paes Leme - WORD"
Selection.TypeParagraph
Selection.Font.Name = "Times new roman"
Selection.Font.Size = 9
Selection.Font.Bold = False
Selection.Font.Italic = True
Selection.TypeText TEXT:="e-mail:teste.alessandro@gmail.com"
Selection.TypeParagraph
Selection.TypeText TEXT:="https://www.youtube.com/user/alessandropaesleme"
Selection.TypeParagraph
Selection.TypeParagraph
Selection.Borders(wdBorderTop).Visible = True
'Selection.TypeParagraph
Selection.TypeParagraph
Selection.Font.Italic = False
Selection.HeaderFooter.Shapes.AddTextbox(msoTextOrientationHorizontal, 80, 30, 60, 60).Select
Selection.ShapeRange.TextFrame.TextRange.Select
Selection.Collapse
Selection.InlineShapes.AddPicture FileName:="D:\VBA\image\luz.jpg"
Selection.ShapeRange.Fill.Visible = msoFalse
Selection.ShapeRange.Line.Visible = msoFalse
Selection.ShapeRange.Select
Selection.ShapeRange.IncrementLeft -5
Selection.ShapeRange.IncrementTop 1.75
Selection.EndKey unit:=wdStory
End Sub
espero que tenha conseguido explicar melhor o que preciso.
agradeço a ajudo dos colegas do fórum.
Gerson.