Abrir Word desde una aplic VB
Publicado por julio (48 intervenciones) el 11/11/2006 02:55:04
El problema es el siguiente: Cuando desde la aplicacion abro por PRIMERA VEZ el word para usarlo como un servidor de automatizacion, todo funciona correctamente. Tambien me permite agregar nuevos documentos en forma correcta.
Pero ocurre que si el usuario lo cierra al word (ocurre con frecuencia), obligadamente tiene que cerrar la aplicacion, porque si envia nuevas impresiones al word, devuelve un error fatal.
Ahora esta funcionando asi. El usuario vuelve a abrir la aplicacion y al enviar una nueva impresion, word se abre correctamente.
En la funcion que desarrolle para abrir el word, indago si ya esta abierto, en caso que ya este abierto, agrego un nuevo documento y si no esta abierto, la aplicacion lo abre.
El problema surge cuando el usuario lo cierra y luego desde la misma instancia de la aplicacion trata de enviar un nuevo documento (remite el numero de error 462).
En la funcion INTERCEPTO EL ERRROR y trato superarlo, pero NO FUNCIONA.
Aqui la funcion que aplico
Private Sub AbrirAplicacionWord(Numero As Integer)
Static Acumulado As Integer
Acumulado = Acumulado + Numero
On Error GoTo ManejoError:
Set apword = Word.Application
apword.Visible = True
apword.Documents.Add ' agrega un nuevo documento
EstablecerTabulaciones
With apword.ActiveDocument.PageSetup
.PageHeight = InchesToPoints(9)
.PageWidth = InchesToPoints(7)
End With
Exit Sub
'Si Word NO ESTA ABIERTO, lo abre
ManejoError:
Dim error As Integer
error = Err
'la aplicacion no esta abierta
Select Case Err
Case 429
'Set apWord = Nothing
Set apword = New Word.Application
Resume Next
'vuelve a la siguiente linea
Case 462
ESTO NO ME CUNCIONA
'Set apWord = Nothing
'Set apWord = New Word.Application
'Set apWord = Word.Application
End Select
Si alguien tiene la respuesta, desde ya muchas gracias.
Pero ocurre que si el usuario lo cierra al word (ocurre con frecuencia), obligadamente tiene que cerrar la aplicacion, porque si envia nuevas impresiones al word, devuelve un error fatal.
Ahora esta funcionando asi. El usuario vuelve a abrir la aplicacion y al enviar una nueva impresion, word se abre correctamente.
En la funcion que desarrolle para abrir el word, indago si ya esta abierto, en caso que ya este abierto, agrego un nuevo documento y si no esta abierto, la aplicacion lo abre.
El problema surge cuando el usuario lo cierra y luego desde la misma instancia de la aplicacion trata de enviar un nuevo documento (remite el numero de error 462).
En la funcion INTERCEPTO EL ERRROR y trato superarlo, pero NO FUNCIONA.
Aqui la funcion que aplico
Private Sub AbrirAplicacionWord(Numero As Integer)
Static Acumulado As Integer
Acumulado = Acumulado + Numero
On Error GoTo ManejoError:
Set apword = Word.Application
apword.Visible = True
apword.Documents.Add ' agrega un nuevo documento
EstablecerTabulaciones
With apword.ActiveDocument.PageSetup
.PageHeight = InchesToPoints(9)
.PageWidth = InchesToPoints(7)
End With
Exit Sub
'Si Word NO ESTA ABIERTO, lo abre
ManejoError:
Dim error As Integer
error = Err
'la aplicacion no esta abierta
Select Case Err
Case 429
'Set apWord = Nothing
Set apword = New Word.Application
Resume Next
'vuelve a la siguiente linea
Case 462
ESTO NO ME CUNCIONA
'Set apWord = Nothing
'Set apWord = New Word.Application
'Set apWord = Word.Application
End Select
Si alguien tiene la respuesta, desde ya muchas gracias.
Valora esta pregunta


0