jueves, 25 de mayo de 2017

VBA: Macro Imprimir Word desde Excel

Un usuario preguntaba por la forma de abrir e imprimir documentos de Word desde Excel.
Para dar respuesta compondremos una sencilla macro.


Abrimos la ventana de código de nuestro módulo estándar y añadimos el siguiente código:

Sub imprime_Word_desde_Excel()
Dim objWord
'abrimos Word
Set objWord = CreateObject("Word.Application")
'mostramos o hacemos visible la aplicación
objWord.Visible = True
'si no deseamos sea visible cambiamos a FALSE
'(OJO, si queremos ver la vista previa debe estar en TRUE)

'identificamos el docx a imprimir
'y lo abrimos (recuerda que no será visible)
Dim objDoc
Set objDoc = objWord.Documents.Open("E:\excelforo\MACRO PARA IMPRIMIR DOCUMENTO WORD DESDE EXCEL.docx")

'Si queremos podemos dirigir la imrpesión por una impresora concreta
Dim ImpresoraDefecto As String
ImpresoraDefecto = objWord.ActivePrinter
objWord.ActivePrinter = "HP Deskjet 3050A J611 series"     '(Tu nombre de impresora deseada)

'activamos la aplicación (Word)
objWord.Activate

'Lanzamos la impresión
objDoc.PrintOut
'o si lo prefieres la vista previa
'objDoc.PrintPreview

'Reseteamos la impresora por defecto para futuras impresiones
objWord.ActivePrinter = ImpresoraDefecto

'cerramos el documento y la aplicación
objDoc.Close
objWord.Quit

End Sub



Bastará ejecutarla...

3 comentarios:

  1. Buenos días,
    ¿como se haría para imprimir los hiperviculos de una columna de excel que fuesen words? O sino que fuera un texto en cada una de las celdas del excel con los enlaces de word.
    Muchas gracias. Un saludo

    ResponderEliminar
    Respuestas
    1. Hola,
      si entiendo bien en ese rango de Excel tienen vínculos a unos documentos de Word y quieres imprimir dichos .docx.
      Si fuera el caso habría que recuperar en primer lugar (desde los vínculos) esas ubicaciones de los vínculos para incorporarlos en el proceso descrito en el post.
      Escribiré en breve un post explicando cómo conseguirlo.

      Saludos

      Eliminar
  2. Hola,
    necesito que el macro lea las celdas de una columna, el texto de éstas son enlaces a words y deberíamos de imprimirlos (no son hipervinculos, son enlaces que son sólo texto que han sido sacados mediante una fórmula).
    Muchas gracias

    ResponderEliminar