Impresión en blanco y negro y color (Microsoft Excel)
Ken tiene un libro de trabajo que contiene 30 hojas de trabajo. Le gustaría imprimir las hojas 1 a 29 en blanco y negro y la hoja 30 en color. Se pregunta si hay una manera de imprimir todas las hojas de trabajo a la vez y especificar que una hoja de trabajo en particular debe imprimirse solo en color.
Esto se hace más fácil con una macro. Todo lo que se necesita es establecer la propiedad .BlackAndWhite para cada hoja de trabajo justo antes de que se imprima.
Por ejemplo, considere la siguiente macro simple:
Sub PrintSingleColorSheet() Dim w As Worksheet Dim S As Integer ' Set worksheet to be in color ' (All others will print in B/W) S = 30 For Each w In Worksheets w.PageSetup.BlackAndWhite = True If w.Index = S Then w.PageSetup.BlackAndWhite = False End If w.PrintOut Next w End Sub
La macro almacena en la variable S el número de índice de la hoja de trabajo que desea que tenga el color. (En este caso, el número de índice es 30). Luego, se recorre cada hoja de trabajo y la propiedad .BlackAndWhite se establece en True. Sin embargo, si la propiedad .Index de la hoja de trabajo coincide con el valor almacenado en S, entonces la propiedad .BlackAndWhite se establece en False, lo que significa que se imprimirá en color. Luego, la impresión se envía a la impresora predeterminada.
Si quisiera, podría ser más elegante con la macro, lo que significa que podría pedirle al usuario qué hoja de trabajo imprimir en color:
Sub PrintSingleColorSheet() Dim w As Worksheet Dim S As Integer Dim sTemp As String Dim sMsg As String sMsg = "There are " & Worksheets.Count & " worksheets in this " sMsg = sMsg & "workbook. Please enter the number of the single " sMsg = sMsg & "worksheet you want to print in color. (All " sMsg = sMsg & "others will print in black and white.)" sTemp = InputBox(sMsg) S = Val(sTemp) If S > 0 And S <= Worksheets.Count Then For Each w In Worksheets w.PageSetup.BlackAndWhite = True If w.Index = S Then w.PageSetup.BlackAndWhite = False End If w.PrintOut Next w Else sMsg = "You entered a value that is out of range." If sTemp <> "" Then MsgBox sMsg End If End If End Sub
Esta versión de la macro le pide al usuario que ingrese un número de hoja de trabajo. Si el valor ingresado está fuera de rango, se muestra un mensaje de error y la macro no imprime nada. Si el usuario hace clic en Cancelar o deja el cuadro de entrada vacío, la macro simplemente sale sin imprimir nada.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (13738) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.