통합 문서에는 모든 종류의 데이터가 포함될 수 있습니다. 각각 적은 양의 데이터 만 포함하는 여러 워크 시트가 포함 된 통합 문서가있는 경우 한 장의 용지에 여러 워크 시트를 인쇄 할 수있는 방법이 있는지 궁금 할 수 있습니다.

이 문제에 대한 해결책에 접근 할 수있는 몇 가지 방법이 있습니다. 첫 번째는 프린터 드라이버의 기능을 사용하여 한 장에 여러 페이지를 인쇄하는 것입니다. 예를 들어, 구형 HP LaserJet을 사용하고 있으며 프린터 드라이버를 사용하여 용지 한 장에 인쇄 할 페이지 수를 지정할 수 있습니다. 한 장의 종이에 3 ~ 4 페이지의 워크 시트를 모두 인쇄하려면 다음 단계를 따르기 만하면됩니다.

  1. 파일 메뉴에서 인쇄를 선택하십시오. Excel은 인쇄 대화 상자를 표시합니다.

  2. 대화 상자의 인쇄 내용 영역에서 전체 통합 문서 옵션을 선택합니다.

  3. 속성 버튼을 클릭합니다. Excel은 레이아웃 탭이 선택된 프린터의 속성 대화 상자를 표시합니다.

  4. Pages Per Sheet 컨트롤을 4로 설정합니다.

  5. 확인을 클릭하여 속성 대화 상자를 닫습니다.

  6. 확인을 클릭하여 실제로 워크 시트를 인쇄합니다.

프린터가 여기에 설명 된 것과 유사한 기능을 제공 할 수 있지만 해당 기능을 찾으려면 프린터의 속성 대화 상자를 탐색해야 할 수도 있습니다. 물론,이 방법으로 인쇄하면 프린터 드라이버가 인쇄 된 페이지의 비례 영역을 차지하도록 각 페이지를 줄이기 때문에 인쇄물에 아주 작은 텍스트가 나타날 수 있습니다. 공백의 일부를 줄여 인쇄 된 텍스트의 크기를 늘리려면 다른 솔루션을 찾아야합니다.

많은 사람들이 인쇄 된 내용을 통합하기 위해 실제로 통합 문서의 다른 워크 시트에 인쇄 할 영역에 대한 참조 만 포함하는 “인쇄 워크 시트”를 만듭니다. 이러한 참조는 각 워크 시트의 데이터를 참조하는 수식을 사용하거나 Excel의 카메라 도구를 사용하여 수행 할 수 있습니다. (카메라 도구는 _ExcelTips._의 다른 문제에 설명되어 있습니다.)

여러 워크 시트를 단일 워크 시트로 통합하는 자동화 솔루션의 경우 매크로를 사용할 수 있습니다. 다음 매크로는 통합 문서 끝에 새 워크 시트를 만들고 다른 모든 워크 시트의 내용을 여기에 복사합니다.

Sub PrintOnePage()

Dim wshTemp As Worksheet, wsh As Worksheet     Dim rngArr() As Range, c As Range     Dim i As Integer     Dim j As Integer

ReDim rngArr(1 To 1)

For Each wsh In ActiveWorkbook.Worksheets         i = i + 1         If i > 1 Then   ' resize array             ReDim Preserve rngArr(1 To i)

End If

On Error Resume Next         Set c = wsh.Cells.SpecialCells(xlCellTypeLastCell)

If Err = 0 Then             On Error GoTo 0

'Prevent empty rows             Do While Application.CountA(c.EntireRow) = 0 _               And c.EntireRow.Row > 1                 Set c = c.Offset(-1, 0)

Loop

Set rngArr(i) = wsh.Range(wsh.Range("A1"), c)

End If     Next wsh

'Add temp.Worksheet     Set wshTemp = Sheets.Add(after:=Worksheets(Worksheets.Count))



On Error Resume Next     With wshTemp         For i = 1 To UBound(rngArr)

If i = 1 Then                 Set c = .Range("A1")

Else                 Set c = _                   ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell)

Set c = c.Offset(2, 0).End(xlToLeft)  'Skip one row             End If

'Copy-paste range (prevent empty range)

If Application.CountA(rngArr(i)) > 0 Then                 rngArr(i).Copy c             End If         Next i     End With     On Error GoTo 0

Application.CutCopyMode = False ' prevent marquies

With ActiveSheet.PageSetup     'Fit to 1 page         .Zoom = False         .FitToPagesWide = 1         .FitToPagesTall = 1     End With

'Preview New Sheet     ActiveWindow.SelectedSheets.PrintPreview

'Print Desired Number of Copies     i = InputBox("Print how many copies?", "ExcelTips", 1)

If IsNumeric(i) Then         If i > 0 Then             ActiveSheet.PrintOut Copies:=i         End If     End If

'Delete temp.Worksheet?

If MsgBox("Delete the temporary worksheet?", _       vbYesNo, "ExcelTips") = vbYes Then         Application.DisplayAlerts = False         wshTemp.Delete         Application.DisplayAlerts = True     End If End Sub

결합 된 워크 시트가 합쳐지면 매크로는 인쇄 미리보기를 사용하여 워크 시트를 표시합니다. 인쇄 미리보기를 닫으면 인쇄 할 워크 시트 사본 수를 묻습니다. 0보다 큰 숫자를 입력하면 많은 사본이 인쇄됩니다. 마지막으로 매크로는 완료하기 직전에 결합 된 워크 시트를 삭제하도록 제안합니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶으면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

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

이 팁 (3243)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excelribbon-Printing_Multiple_Worksheets_on_a_Single_Page [한 페이지에 여러 워크 시트 인쇄].