Steve는 VBA 매크로에서 워크 시트가 인쇄 될 때 포함 할 페이지 수와 특정 셀이 인쇄 될 페이지 번호를 결정하는 방법을 찾고 있습니다. 이 작업은 원하는 것만 큼 쉽지는 않지만 수행 할 수 있습니다.

이를 처리하는 가장 좋은 방법은 오래된 (그러나 여전히 사용 가능한) Excel 4 기능을 사용하여 워크 시트의 총 인쇄 페이지 수를 결정하는 것 같습니다. 그런 다음 HPageBreaks 및 VPageBreaks 컬렉션을 사용하여 인쇄 할 페이지 매트릭스에서 셀이 어디에 있는지 알아낼 수 있습니다. 다음은 이러한 항목을 활용하는 매크로의 예입니다.

Sub PageInfo()

Dim iPages As Integer     Dim iCol As Integer     Dim iCols As Integer     Dim lRows As Long     Dim lRow As Long     Dim x As Long     Dim y As Long     Dim iPage As Integer

iPages = ExecuteExcel4Macro("Get.Document(50)")



With ActiveSheet         y = ActiveCell.Column         iCols = .VPageBreaks.Count         x = 0         Do             x = x + 1         Loop Until x = iCols _           Or y < .VPageBreaks(x).Location.Column         iCol = x         If y >= .VPageBreaks(x).Location.Column Then             iCol = iCol + 1         End If

y = ActiveCell.Row         lRows = .HPageBreaks.Count         x = 0         Do             x = x + 1         Loop Until x = lRows _           Or y < .HPageBreaks(x).Location.Row         lRow = x         If y >= .HPageBreaks(x).Location.Row Then             lRow = lRow + 1         End If

If .PageSetup.Order = xlDownThenOver Then             iPage = (iCol - 1)  (lRows + 1) + lRow         Else             iPage = (lRow - 1)  (iCols + 1) + iCol         End If     End With     MsgBox "Cell " & ActiveCell.Address & _       " is on " & vbCrLf & "Page " & _       iPage & " of " & iPages & " pages"

End Sub

이 매크로에서 명심해야 할 한 가지는 HPageBreaks 및 VPageBreaks 컬렉션은 페이지 나누기 미리보기 (보기 | 페이지 나누기 미리보기)에서 워크 시트를 보는 경우에만 정확한 것으로 간주된다는 것입니다. 따라서 셀을 선택하고 매크로를 실행하기 전에 해당 모드에 있는지 확인해야합니다.

_ 참고 : _

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

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

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

이 팁 (11581)은 Microsoft Excel 2007, 2010, 2013 및 2016에 적용됩니다.

Excel의 이전 메뉴 인터페이스에 대한이 팁의 버전은`link : / excel-Page_Numbers_in_VBA [VBA의 페이지 번호]`에서 찾을 수 있습니다.