Pregunta: | 5624 - CONTROLAR UNA INSTANCIA DE WORD DESDE VISUAL |
Autor: | Gabriel |
Me gustaría q me respondieseis al siguiente problema:
Quiero controlar Word desde Visual Basic de tal forma q pueda abrirlo si no lo está, aprovecharme de él para darle formato a un texto y mandarlo a imprimir como si fuera un informe pero hecho en Word.Pienso q lo hago todo bien pero no me cierra adecuadamente la aplicación y se queda en memoria.El código q adjunto es el siguiente: Dim wordi As Word.Application Dim nuevo As Word.Document Set wordi = New Word.Application //Abro Word Set nuevo = wordi.Documents.Add //Abro documento nuevo.Activate //Lo pongo como activo With selection ------- //Aquí le aplico el formato al texto End with nuevo.PrintOutRange:=wdPrintCurrentPage //imprimo nuevo.close // cierro el documento set wordi=nothing // cierro word El problema es que me sigue en memoria la instancia de Word con los problemas al efectuar de nuevo la operación. También me gustaría q me dijérais como controlar si Word está abierto para abrir un documento y cerrarlo sin q se cierre la instancia de Word Un saludo |
Respuesta: | Joan-Baptista Fàbregas Muñoz |
Hola.
El problema lo tienes basicamente al hacer "set wordi=nothing" con el word, esto lo unico que hace es desvincular el objeto wordi de la aplicacion de word, para cerrar realmente el Word, el codigo es: wordi.Quit 'Esto realmente cierra el word set wordi=nothing En cuando a la segunda pregunta, seria muy complejo determinar si hay una aplicacion de word activa. En todo caso ten en cuenta que cuando abres directamente un documento de word sin abrir la aplicacion, si no esta vinculado, el mismo abre una aplicacion de word que puedes controlar accediendo a la propiedad Aplication del objeto documento. Esta propiedad realmente es un objeto aplicacion de Word que "contiene" al documento. Espero haberte sido de ayuda. Saludos. |