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.