Ken은 30 개의 워크 시트가 포함 된 워크 북을 가지고 있습니다. 그는 1 장부터 29 장까지 흑백으로 인쇄하고 30 장까지 컬러로 인쇄하려고합니다. 그는 모든 워크 시트를 한 번에 인쇄 할 수있는 방법이 있는지 궁금해하고 특정 워크 시트가 컬러로만 인쇄되도록 지정합니다.

매크로를 사용하면 가장 쉽습니다. 인쇄하기 직전에 각 워크 시트에 대해 .BlackAndWhite 속성을 설정하기 만하면됩니다.

예를 들어 다음과 같은 간단한 매크로를 고려하십시오.

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

매크로는 S 변수에 컬러로 표시 할 워크 시트의 인덱스 번호를 저장합니다. (이 경우 인덱스 번호는 30입니다.) 그런 다음 각 워크 시트를 단계별로 실행하고 .BlackAndWhite 속성을 True로 설정합니다. 그러나 워크 시트의 .Index 속성이 S에 저장된 값과 일치하면 .BlackAndWhite 속성이 False로 설정되어 컬러로 인쇄됩니다. 그러면 인쇄물이 기본 프린터로 전송됩니다.

원하는 경우 매크로를 더 멋지게 만들 수 있습니다. 즉, 사용자에게 컬러로 인쇄 할 워크 시트를 묻도록 할 수 있습니다.

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

이 매크로 버전은 사용자에게 워크 시트 번호를 입력하도록 요청합니다. 입력 한 값이 범위를 벗어나면 오류 메시지가 표시되고 매크로는 아무 것도 인쇄하지 않습니다. 사용자가 취소를 클릭하거나 입력 상자를 비워두면 매크로는 아무것도 인쇄하지 않고 종료됩니다.

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (13738)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다.