Con este código puedes llamar a un DOCUMENTO de WORD, modificarlo y luego guardarlo como una copia si deseas, esto es útil por ejemplo para usar una carta modelo y editar los campos de destinatario para luego ser impreso
Crea un documento cualquiera en Word y escribe lo siguiente:
«Buenos días Sr. Orlando, como esta su esposa Roxana, espero que todo bien, les invito a mi fiesta el día 02/09»
Ahora, marca la palabra Orlando y ve a
Menú Inserta -> Marcador… y ponle «Destinatario»
Luego Marca la palabra Roxana y haz lo mismo que antes, pero ponle como nombre «Esposa»
finalmente haz lo mismo con la fecha y llámalo «Fecha»
Graba el documento con el nombre de «Carta.doc»
El Código:
Haz la Referencia a «Microsoft Word xx Object Library» donde xx varia según la versión que tengas instalada, Pega 3 TextBox y llámalos: txtDestinatario, txtEsposa, txtFecha y un botón de comando y llámalo cmdLlenaCarta
Option Explicit Dim objWord As Word.Application Private Sub cmdLlenaCarta_Click() Set objWord = New Word.Application objWord.Visible = True 'Pon la Ruta donde Guardaste la Carta objWord.Documents.Open App.Path & "Carta.doc" objWord.Documents(1).Bookmarks("Destinatario").Range =txtDestinatario.Text objWord.Documents(1).Bookmarks("Esposa").Range = txtEsposa.Text objWord.Documents(1).Bookmarks("Fecha").Range = txtFecha.Text End Sub Private Sub Form_Unload(Cancel As Integer) Set objWord = Nothing End Sub
Si, no les salió bien, aquí les tengo el ejemplo :p
Me sale un error de que el elemento del conjunto solicitado no existe. ¿Qué hago?
Hola, probé el programa y anda muy bien, me as dado una gran mano. Mil Gracias
Carlos
Hola:
El error es que en la línea:
objWord.Documents.Open App.Path & «\Carta.docx»
Falta el signo \.
La frase original es,
objWord.Documents.Open App.Path & «Carta.docx»
Y entonces no abre la ruta. Hay que añadirlo y funciona.
Esta forma de modificar texto en .word es la más sencilla que he visto. he practicado hasta con documetnos en RichTextFormat.
Gracias.
Saludos,