Programación General > Visual Basic para principiantes
Fallo en cerrar documento de Word desde VB6
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
[#] Página Siguiente
Ir a la versión completa