VBA (Microsoft Excel)의 페이지 번호
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의 페이지 번호]`에서 찾을 수 있습니다.