Programación General > Visual Basic para principiantes

 Fallo en cerrar documento de Word desde VB6

(1/2) > >>

Jimbenit:
Hola a toda la comunidad de solocodigo...
Mi problema es el siguiente:

Estoy intentado copiar el contenido de unos archivos de texto (.txt) en unos documentos de word, los documentos son creados con el mismo nombre que los archivos de texto (solo cambian la extension a .doc)... Por ejemplo...
Si el archivo se llama Archivo.txt, se debe crear un documento de word con el mismo nombre pero de extensión .doc, es decir, debe crearse Archivo.doc con el contenido de Archivo.txt.

Para esto he creado una funcion y un subproceso (en un modulo), aqui se los coloco:

Esto es para leer el contenido de los archivos de texto:

--- Código: Visual Basic ---Public Function LeerTexto(ArchivoTXT As String) As String            If ArchivoTXT = "" Then Exit Function    Dim NroLibre As Integer    Dim Ruta As String    Dim Linea As String    Dim Texto As String    Ruta = App.Path & "" & ArchivoTXT    NroLibre = FreeFile         Open Ruta For Input As #NroLibre        While Not EOF(1)            Line Input #NroLibre, Linea            Texto = Texto & Linea & vbCrLf        Wend    Close #NroLibre LeerTexto = Texto End Function 
Esto es para crear el documento de word:

--- Código: Visual Basic ---Sub AgregarWord(Texto_A_Escribir As String, Nombre_ArchivoTXT As String)    If Nombre_ArchivoTXT = "" Then Exit Sub Dim Texto As StringDim Nombre_Archivo As String 'este es el nombre del archivo sin la extensión.Texto = Texto_A_Escribir     Dim Word As New Word.Application     'AGREGA  DOCUMENTO    Word.Documents.Add                'AGREGA TEXTO        Word.Selection.Font.Color = wdColorBlack        Word.Selection.Font.Name = "Courier new"        Word.Selection.TypeText Texto        'AGREGA PARRAFO        Word.Selection.TypeParagraph         'SELECCIONA TEXTO    Word.Selection.WholeStory    Word.Selection.Font.Size = 10         Nombre_Archivo = Left(Nombre_ArchivoTXT, Len(Nombre_ArchivoTXT) - 4)          ActiveDocument.SaveAs FileName:=App.Path & "" & Nombre_Archivo & ".doc"            Set Word = NothingEnd Sub 
Y en un boton command1 del formulario coloco lo siguiente:


--- Código: Visual Basic ---Private Sub Command1_Click()Dim Archivo As StringDim Texto As String   Archivo = Dir(App.Path & "*.txt") While Archivo <> ""    Texto = LeerTexto(Archivo)    Call AgregarWord(Texto, Archivo)    Archivo = DirWend MsgBox ("Finalizado")  End Sub  
El problema es que los archivos de Word creados no cierran del todo... me doy cuenta cuando abro el administrador ( CTRL + Alt + Sup) y encuentro en la lista la aplicacion de word (y esta abierta!!!)...
Miren la siguiente imagen y dense cuenta de los WINWORD que aun estan abiertos (en este ejemplo, solo cree tres documentos de word, por lo que solo aparecen 3 Winword en la imagen)


¿Como hago para que despues de ejecutar mi code esta aplicacion no este abierta?, que le falta a mi codigo?...
Saludos.

m0skit0:
Normal. Con Set Word = Nothing no cierras la aplicación, simplemente desreferencias el objeto. Tienes que hacer Word.Quit antes.

Jimbenit:

--- Cita de: "m0skit0" ---Normal. Con Set Word = Nothing no cierras la aplicación, simplemente desreferencias el objeto. Tienes que hacer Word.Quit antes.
--- Fin de la cita ---
Si hago eso, me aparece el siguiente error:

señalando la siguiente linea:

--- Código: Visual Basic ---ActiveDocument.SaveAs FileName:=App.Path & "" & Nombre_Archivo & ".doc" 

m0skit0:
Pues porque habrás hecho el Quit antes de salvar...

cpmario:
El comando para cerrar word es:

--- Código: Text ---Word.Application.Quit   :comp:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa