VBA WORD: Seleccionar Documento Activo
Resuelto
ph412
Mensajes publicados
49
Estado
Miembro
-
ph412 Mensajes publicados 49 Estado Miembro -
ph412 Mensajes publicados 49 Estado Miembro -
Hola a todos,
Me defiendo con VBA en Excel pero soy un total principiante en Word.
Mi problema:
Quiero a partir de Excel inscribir datos variables en un archivo de Word.
Hasta ahora lo logro con el código a continuación.
(mi variable está declarada como pública en Excel y se inscribe perfectamente)
Sub Creacion_doc_word()
Dim WQ As Object
Set WQ = New Word.Application
WQ.Visible = True
' Creación de un nuevo documento:
WQ.Documents.Add
WQ.Selection.TypeText Text:=variable
Set WQ = Nothing
End Sub
Ahora que el documento de Word permanece abierto, quiero poder volver a escribir en este documento (a través de otra macro) pero no logro seleccionarlo de nuevo. ¿Pueden ayudarme, por favor?
Si he entendido bien, Word.Application me permite indicar a VBA que estoy trabajando en Word, pero no me permite seleccionar mi documento.
Gracias
Me defiendo con VBA en Excel pero soy un total principiante en Word.
Mi problema:
Quiero a partir de Excel inscribir datos variables en un archivo de Word.
Hasta ahora lo logro con el código a continuación.
(mi variable está declarada como pública en Excel y se inscribe perfectamente)
Sub Creacion_doc_word()
Dim WQ As Object
Set WQ = New Word.Application
WQ.Visible = True
' Creación de un nuevo documento:
WQ.Documents.Add
WQ.Selection.TypeText Text:=variable
Set WQ = Nothing
End Sub
Ahora que el documento de Word permanece abierto, quiero poder volver a escribir en este documento (a través de otra macro) pero no logro seleccionarlo de nuevo. ¿Pueden ayudarme, por favor?
Si he entendido bien, Word.Application me permite indicar a VBA que estoy trabajando en Word, pero no me permite seleccionar mi documento.
Gracias
1 respuesta
Hola,
como esto:
--
@+ El Pájaro Carpintero
como esto:
've a Herramientas-referencias y marca Microsoft Word 12.0 Object Library Sub Creation_doc_word() Dim MiBonitoWord As Object Set MiBonitoWord = New Word.Application MiBonitoWord.Visible = True ' Creación de un nuevo documento : MiBonitoWord.Documents.Add ' Escribir un pequeño texto en este nuevo documento : MiBonitoWord.Selection.TypeText "Prueba de funcionamiento" ' Guardar este documento creado : 'MiBonitoWord.ActiveDocument.SaveAs "C:\Mis documentos\Prueba simple.doc" ' Cerrar este documento : ' MiBonitoWord.ActiveDocument.Close ' Set MiBonitoWord = Nothing End Sub Sub ajout_texte() Dim appword As Object, losdocumentos As Object, ledoc As Object Dim i As Byte On Error GoTo atrapareerror 'Intenta recuperar la instancia de Word 'activa en caso de que Word esté abierto 'Si Word no está abierto, esto genera 'el error número 429 'En ese caso, el manejador de errores "atrapareerror" 'toma el relevo y abre Word Set appword = GetObject(, "Word.Application") appword.Visible = True Set losdocumentos = appword.Documents For Each ledoc In losdocumentos ledoc.Select appword.Selection.EndKey Unit:=wdStory appword.Selection.InsertParagraph appword.Selection.InsertAfter "Se acabó" ledoc.Save Next 'Cerrar los documentos For Each ledoc In losdocumentos ledoc.Close Next 'Cerrar Word appword.Quit 'Salida de rutina, para evitar el manejador de errores Exit Sub 'Manejador de errores atrapareerror: Select Case Err.Number Case 429 MsgBox "El archivo ya existe. Fin del programa y regreso a Word " Case Else MsgBox "Error inesperado. Fin del programa y regreso a Word" End End Select End Sub
--
@+ El Pájaro Carpintero
ph412
Mensajes publicados
49
Estado
Miembro
¡Muchas gracias, funciona muy bien! (Después no cierro el documento de Word para poder pasar continuamente de Excel a Word) ¡Genial!