Abrir word desde VB

Hola de nuevo!
Tengo otro problemilla! Tengo que abrir una plantilla de word desde VB.he encontrado como se hace en internet y demás sitios pero solo me deja abrirla la primera vez al iniciar el programa.no se que tendré mal, ya el código del que he conseguido esto si funciona.si me podrías dar alguna idea...
Muchas gracias.
1

1 respuesta

Respuesta
1
Umh. Vale. ¿Cómo abres la plantilla del Word?.
Prueba a abrirla con esto:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
ShellExecute hwnd, "Open", FileName, 0&, 0&, vbNormalFocus
En el parametro FileName tiene que estar el nombre de la plantilla con el path completo.
Ya me cuentas si te sigue dando el mismo error.
Mil gracias.ha costado, pero al final... je je. Eres increíble!
Perdona mi ignorancia, ¿pero dónde tengo que poner el código que me has dado? Lo ponga donde lo ponga me da error.Me dice que los comentarios no pueden ir ahí!
Gracias de nuevo.
Vale, ya he hecho eso, pero me da el error:"Variable no definida" en la palabra hwnd de ShellExecute hwnd, "Open", FileName, 0&, 0&, ¿vbNormalFocus.qué tengo mal?
Tranquilo, no lo he especificado mucho, las prisas.
La declaracion de la llamada API puedes ponerla en un modulo cualquiera (cambia el Private Declare por Public Declare).
Para la llamada a dicha API, puedes crearte un procedimiento publico en el mismo modulo tal que así:
Public Sub AbrirArchivo(ByVal FileName As String)
ShellExecute hwnd, "Open", FileName, 0&, 0&, vbNormalFocus
End Sub
Jarrrr. Fallo mio, necesitas enviárselo por parámetro desde un formulario (es una propiedad que tienen todos los formularios):
Public Sub AbrirArchivo(Byval hwnd As Long, ByVal FileName As String)
ShellExecute hwnd, "Open", FileName, 0&, 0&, vbNormalFocus
End Sub
Desde un formulario la llamada seria:
AbrirArchivo hwnd, "C:\plantilla.doc"
No acabo de entenderte. ¿Quieres abrir un mismo documento con varias instancias del mismo programa?. No te va a dejar. El Word detecta que el archivo que quieres abrir ya lo tiene abierto y te pasara (como mucho) el foco a la instancia de Word que tiene el documento, pero no abrirá otro Word con el mismo documento (podrías modificarlo en un sitio y en el otro no se actualizaría, creando un problema de inconsistencia).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas