Drucken in Schwarzweiß und Farbe (Microsoft Excel)
Ken hat eine Arbeitsmappe mit 30 Arbeitsblättern. Er möchte die Blätter 1 bis 29 in Schwarzweiß und die Blätter 30 in Farbe drucken. Er fragt sich, ob es eine Möglichkeit gibt, alle Arbeitsblätter gleichzeitig zu drucken und anzugeben, dass ein bestimmtes Arbeitsblatt nur in Farbe gedruckt werden soll.
Dies ist am einfachsten mit einem Makro zu tun. Sie müssen lediglich die Eigenschaft .BlackAndWhite für jedes Arbeitsblatt festlegen, bevor es gedruckt wird.
Betrachten Sie beispielsweise das folgende einfache Makro:
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
Das Makro speichert in der S-Variablen die Indexnummer des Arbeitsblatts, das Sie in Farbe haben möchten. (In diesem Fall lautet die Indexnummer 30.) Anschließend wird jedes Arbeitsblatt durchlaufen und die Eigenschaft .BlackAndWhite auf True gesetzt. Wenn jedoch die .Index-Eigenschaft für das Arbeitsblatt mit dem in S gespeicherten Wert übereinstimmt, wird die .BlackAndWhite-Eigenschaft auf False festgelegt, was bedeutet, dass sie in Farbe gedruckt wird. Der Ausdruck wird dann an den Standarddrucker gesendet.
Wenn Sie möchten, können Sie das Makro besser kennenlernen, dh Sie können den Benutzer fragen, welches Arbeitsblatt in Farbe gedruckt werden soll:
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
Diese Version des Makros fordert den Benutzer auf, eine Arbeitsblattnummer einzugeben. Wenn der eingegebene Wert außerhalb des Bereichs liegt, wird eine Fehlermeldung angezeigt und das Makro druckt nichts. Wenn der Benutzer auf Abbrechen klickt oder das Eingabefeld leer lässt, wird das Makro einfach beendet, ohne etwas zu drucken.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (13738) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.