현재 페이지의 인쇄 미리보기 표시 (Microsoft Excel)
Michelle은 작업중인 긴 워크 시트를 가지고 있습니다. 워크 시트에 대해 인쇄 미리보기를 사용할 때 인쇄 미리보기 대화 상자에 표시된 페이지는 항상 첫 번째 페이지입니다. Michelle은 작업중인 워크 시트의 페이지를 자동으로 표시하도록 인쇄 미리보기를 만드는 방법이 있는지 궁금합니다.
이 문제에 접근하는 한 가지 방법은 인쇄 영역 작업을 시도하는 것입니다. 작업중인 워크 시트의 영역을 선택한 다음 인쇄 영역을 선택 항목과 동일하게 설정하면 인쇄 미리보기를 표시 할 때 해당 인쇄 영역 만 표시되어야합니다.
이것이 당신의 욕망을 달성하지 못한다면, 당신은 매크로를 사용할 수 있다고 생각할 것입니다. 다음은 트릭을 수행 할 수있는 예제 매크로입니다.
Sub PrintPreviewActivePage() Dim lActiveRow As Long Dim iActiveCol As Integer Dim iHPBs As Integer Dim iVPBs As Integer Dim lRow As Integer Dim iCol As Integer Dim iPage As Integer lActiveRow = ActiveCell.Row iActiveCol = ActiveCell.Column ActiveSheet.UsedRange If IsEmpty(ActiveCell.SpecialCells(xlCellTypeLastCell)) Then _ ActiveCell.SpecialCells(xlCellTypeLastCell).FormulaR1C1 = " " If lActiveRow > ActiveCell.SpecialCells(xlCellTypeLastCell).Row Or _ iActiveCol > ActiveCell.SpecialCells(xlCellTypeLastCell).Column Then _ Exit Sub With ActiveSheet iHPBs = .HPageBreaks.Count iVPBs = .VPageBreaks.Count lRow = 0 iCol = 0 If iHPBs > 0 Or iVPBs > 0 Then For lRow = iHPBs To 1 Step -1 If .HPageBreaks(lRow).Location.Row <= lActiveRow Then Exit For Next lRow For iCol = iVPBs To 1 Step -1 If .VPageBreaks(iCol).Location.Column <= iActiveCol Then Exit For Next iCol End If iPage = (lRow + 1) + (iCol * (iHPBs + 1)) .PrintOut From:=iPage, To:=iPage, Preview:=True MsgBox "Previewed page " & iPage End With If ActiveCell.SpecialCells(xlCellTypeLastCell).FormulaR1C1 = " " Then _ Selection.SpecialCells(xlCellTypeLastCell).ClearContents End Sub
이 매크로는 실제로 인터넷에서 몇 가지 조사를 통해 찾을 수있는 여러 매크로의 변형입니다. 여기에는 두 가지 주요 부분이 있습니다. 먼저 매크로는 워크 시트에서 사용자가있는 “페이지”를 파악한 다음 미리보기 매개 변수가 True로 설정된 .PrintOut 메서드를 사용하여 인쇄 미리보기를 호출합니다.
일부 워크 시트는이 매크로가 훌륭하게 작동 할 수 있지만 작동 여부는 상당히 변덕 스럽습니다. 대부분의 테스트에서 아주 작은 워크 시트를 사용하지 않는 한 작동하지 못했습니다. (즉, 행과 열이 매우 적습니다.) 큰 워크 시트에서 실행하면 .HPageBreaks 컬렉션의 구성원을 검사하는 루프에서 “Subscript Out of Range”오류가 발생하는 것을 금방 알 수 있습니다. 범위를 벗어난 멤버를 사용하지 않을 때 (lRow는 .Count 속성에서 반환 된 값을 벗어나지 않음) 어떻게 이런 일이 발생할 수 있는지는 당혹 스럽습니다.
하지만 마이크로 소프트가 인정하는 문제인 것 같다. 사실, 그것은 그들이 인정했지만 수년 동안 해결되지 않은 문제입니다.
https://support.microsoft.com/en-us/help/210663/
그러나 웹 페이지에서 제안 된 솔루션은 실제로 작동하지 않습니다. 따라서 우리는 단일 페이지로만 작업하기 때문에 페이지 번호를 계산할 필요가없는 워크 시트에서만 안정적으로 작동하는 매크로를 사용합니다. 아아!
결론은 매크로 기반 접근 방식이 가까운 미래에 Michelle의 요구 사항에 적합하지 않을 수 있다는 것입니다. 따라서이 팁의 시작 부분에서 설명한 인쇄 영역 접근 방식 만 남게됩니다.
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (13578)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다.