이전에 수동으로 홀짝 인쇄하는 방법을 올렸는데요.
이번에는 파워포인트나 프린터에서 '소책자' 인쇄를 지원하지 않을 때
자동으로 양면 소책자 인쇄 순서대로 인쇄 페이지 순서를 변경해주는 VBA 매크로입니다.
소책자 인쇄를 하려면 페이지 순서가 달라지는데
페이지 순서 계산이 쉽지 않습니다.
12페이지라면 맨처음 12, 1페이지가 나란히 있고
그 뒷면에 2, 11페이지가 와야 합니다.
그 다음은 10, 3페이지가 옵니다.
규칙을 찾아보면
계속 뒤로 갈수록 한페이지번호가 1씩 줄어들거나 혹은 늘어나면서 좌우가 바뀌는 식입니다.
또하나의 규칙은 (12,1), (2,11), (10,3), (4,9), (8,5), (6,7) 각각의 페이지가 좌우 페이지수를 더하면 13(총페이지수+1)인 것을 알 수 있습니다.
🎲🎲🎲 코드 더보기:
Sub 소책자인쇄()
Dim pres As Presentation
Dim l As Long
Dim Page() As Long
Dim P As Long, Q As Long
Dim strPage As String
Set pres = ActivePresentation
P = pres.Slides.Count
'P = 8
If P < 2 Then Exit Sub
'// 페이지가 4의 배수가 아닌 경우
Q = 4 - (P Mod 4) '4의 배수가 되도록 추가할 페이지 수
If Q > 0 And Q < 4 Then
For l = 1 To Q
pres.Slides.Add pres.Slides.Count + 1, ppLayoutBlank
Next l
End If
'//페이지 번호 순환
Q = 1: l = 1: P = pres.Slides.Count
ReDim Page(1 To pres.Slides.Count)
While l < UBound(Page)
If P Mod 2 = 0 Then
Page(l) = P
Page(l + 1) = Q
Else
Page(l) = Q
Page(l + 1) = P
End If
Q = Q + 1
P = P - 1
l = l + 2
Wend
With pres.PrintOptions
.Ranges.ClearAll
.RangeType = ppPrintSlideRange
.OutputType = ppPrintOutputSlides
For l = 1 To UBound(Page)
.Ranges.Add Page(l), Page(l)
strPage = strPage & IIf(l = 1, "", ",") & Page(l)
Next l
End With
Debug.Print strPage
Application.CommandBars.ExecuteMso ("PrintPreviewAndPrint")
' Pres.PrintOut
End Sub
🕹🕹🕹 실행 화면:
위에 보듯이 매크로를 실행하면 인쇄설정이 범위지정으로 바뀌고
슬라이드 순서를 바꿔줍니다.
8페이지라면 8,1,2,7,6,3,4,5
12페이지라면 12,1,2,11,10,3,4,9,8,5,6,7 이런식으로 자동으로 인쇄 순서를 바꿔줍니다.
바로 인쇄하지 않고 인쇄미리보기 화면을 띄웁니다.
혹시 다른 데 이용하려면 Ctrl-G 디버그창의 페이지 순서를 복사해서 이용하세요.
🎈🎈🎈다운로드:
🧨🧨🧨 매크로 안내:
첨부파일에는 왼쪽과 같은 매크로가 추가로 들어 있습니다.
AddPages 는 페이지 진척도를 페이지 아래에 삽입해줍니다.
AddSlideNo 는 슬라이드 하단 아래 중간에 페이지 번호를 추가합니다.
delPages, delSlideNo는 페이지번호, 진척도를 삭제합니다.
Jump2Slide 는 특정 슬라이드로 이동합니다.
SplitTextbox 는 아래로 긴 텍스트박스를 슬라이드 세로 크기에 맞게 잘라서 여러페이지로 자동으로 분리해줍니다.
Zap2CReturns 는 텍스트박스에서 엔터를 지워줍니다.
다음 사진들은 '메밀꽃 필 무렵'이라는 단편소설을 위 기능을 이용하여 소책자로 만들어본 것입니다.
'PPT+VBA' 카테고리의 다른 글
ppt를 그림 프리젠테이션으로 저장 (1) | 2021.05.12 |
---|---|
ppt 스톱워치 - 타이머 누적 기록 (5) | 2021.04.22 |
현재 슬라이드를 윈도우 바탕화면으로 설정 (0) | 2021.03.23 |
MS파워포인트 버전별 차이점 정리 (0) | 2021.01.26 |
도형병합으로 정다각형(Regular Polygon) 그리기 (4) | 2020.12.16 |
PPT 홀수, 짝수페이지 따로 출력하기 (수동 양면 출력) (1) | 2020.12.02 |
파워포인트 슬라이드 고해상도(고화질)로 저장 (0) | 2020.11.27 |
룰렛 회전판 생성기 v2 (6) | 2020.10.16 |
최근댓글