Macro para imprimir todos los documentos abiertos

Seleccione idioma Seleccione idioma
Id. de artículo: 67571 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

Resumen

El siguiente procedimiento de Visual Basic (sólo versión 5.0) y la macro de Microsoft Excel se por lotes impresión abrirán todos los documentos que están actualmente en Microsoft Excel:

Procedimiento de Visual Basic

El procedimiento siguiente imprime todas las hojas de cada libro abierto en Microsoft Excel versión 5.0.

Microsoft proporciona ejemplos de los procedimientos de Visual Basic con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita, incluyendo pero sin limitarse a las garantías implícitas de comerciabilidad e idoneidad para un propósito determinado. Este procedimiento de Visual Basic se proporciona "tal cual" y Microsoft no garantiza que puede utilizarse en todas las situaciones. Microsoft no admite modificaciones de este procedimiento para satisfacer los requisitos del cliente para un propósito determinado. Tenga en cuenta que una línea que está precedida por un apóstrofo presenta un comentario en el código; se proporcionan comentarios para explicar lo que hace el código en un punto determinado en el procedimiento. Tenga en cuenta también que un carácter de subrayado (_) indica que el código continúa de una línea a la siguiente. Puede escribir líneas que contienen este carácter como una línea lógica o puede dividir las líneas de código para incluir el carácter de continuación de línea. Para obtener más información acerca de Visual Basic para aplicaciones de estilo de programación, consulte la sección de "Programación estilo en este manual" en la sección "Convenciones de documentos" de la "Guía del usuario de Visual Basic".

   Sub Print_All()
      Dim n As Integer
      Dim c As Integer
      ' Find number of open workbooks
      n = Application.Workbooks.Count
      'Loop through and print each open workbook
      For c = 1 To n
         Application.Workbooks(c).PrintOut
      Next c
   End Sub
				


Macro de Microsoft Excel

(Tenga en cuenta que si ejecuta esta macro en Microsoft Excel versión 5.0, se imprimirá sólo la hoja activa en cada libro abierto)

  1. El nombre de hoja de macro encerrado entre comillas en la celda A5 debe ser el nombre de la hoja de macro en el que colocar esta macro. Esto es para que la macro no imprimirá propio.
  2. La cola de impresión versión 3.0 de Windows impone una limitación de archivo 20. Esta macro no se comprueba para circunstancias exceder este máximo. Normalmente, esto no debe ser un problema porque está cerca al número máximo de documentos de que Microsoft Excel puede tener abiertos (lectura y escritura en Windows 3.0). Más probable que se ha completado la cola de impresión imprimir algunos de los archivos en el momento en que Microsoft Excel envía todos los documentos a la cola. El límite de Windows versión 3.1 es 100 trabajos de impresión.
  3. Si la limitación de archivo 20 suponer un problema en la práctica, la WAIT función puede utilizarse para permitir algunos tiempo adicional para enviar un archivo a la impresora antes de Microsoft Excel envíe otro documento a la cola de impresión que la cola de impresión. La línea siguiente puede insertarse entre las celdas A5 y A6:

    =WAIT(NOW()+TIMEVALUE("00:02:00"))

    Esta línea provocará la macro de una pausa de 2 minutos antes de enviar el documento siguiente.
Nota: Microsoft proporciona ejemplos de macros con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita, incluyendo pero sin limitarse a las garantías implícitas de comerciabilidad e idoneidad para un propósito determinado. Esta macro se proporciona "tal cual" y Microsoft no garantiza que el código siguiente puede utilizarse en todas las situaciones. Microsoft no admite modificaciones del código para satisfacer los requisitos del cliente.

Ésta es la macro:

A1: Print_Docs
A2: =COLUMNS(DOCUMENTS())
A3: =FOR("Count",1,A2,1)
A4: =ACTIVATE(INDEX(DOCUMENTS(),1,Count))
A5: =IF(GET.DOCUMENT(1)<>"macro1.xlm",PRINT())
A6: =NEXT()
A7: =RETURN()

Propiedades

Id. de artículo: 67571 - Última revisión: jueves, 30 de enero de 2014 - Versión: 1.4
La información de este artículo se refiere a:
  • Microsoft Excel 95 Standard Edition
  • Microsoft Excel 5.0 Standard Edition
  • Microsoft Excel 4.0c
  • Microsoft Excel 3.0a
  • Microsoft Excel 2.10d
  • Microsoft Excel 2.1 Standard Edition
  • Microsoft Excel 2.01
  • Microsoft Excel 2.0 Standard Edition
Palabras clave: 
kbnosurvey kbarchive kbmt KB67571 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 67571

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com