Stampa in bianco e nero ea colori (Microsoft Excel)
Ken ha una cartella di lavoro contenente 30 fogli di lavoro. Vorrebbe stampare i fogli da 1 a 29 in bianco e nero e il foglio 30 a colori. Si chiede se esiste un modo per stampare tutti i fogli di lavoro contemporaneamente e specificare che un particolare foglio di lavoro deve essere stampato solo a colori.
È più facile farlo con una macro. Tutto ciò che serve è impostare la proprietà .BlackAndWhite per ogni foglio di lavoro appena prima che venga stampato.
Ad esempio, considera la seguente semplice macro:
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 memorizza nella variabile S il numero di indice del foglio di lavoro che si desidera sia a colori. (In questo caso, il numero di indice è 30). Quindi, ogni foglio di lavoro viene spostato e la proprietà .BlackAndWhite impostata su True. Se, tuttavia, la proprietà .Index del foglio di lavoro corrisponde al valore memorizzato in S, la proprietà .BlackAndWhite è impostata su False, il che significa che verrà stampata a colori. La stampa viene quindi inviata alla stampante predefinita.
Potresti, se lo desideri, diventare più elaborato con la macro, il che significa che potresti chiedere all’utente quale foglio di lavoro stampare a colori:
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
Questa versione della macro chiede all’utente di inserire un numero di foglio di lavoro. Se il valore immesso è fuori intervallo, viene visualizzato un messaggio di errore e la macro non stampa nulla. Se l’utente fa clic su Annulla o lascia vuota la casella di input, la macro esce semplicemente senza stampare nulla.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (13738) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.