예를 들어 1페이지에 4개씩 유인물 인쇄를 할 때

유인물 레이아웃을 이용해도 슬라이드 썸네일 크기나 여백을 세밀하게 조정할 수 없습니다.

 

사용자가 인쇄되는 슬라이드의 크기나 간격을 조절하려면

원본 슬라이드의 크기를 조절하는 수밖에 없습니다.

디자인 > 슬라이드 크기에서 4:3이나 16:9 혹은 사용자 지정으로 크기를 변경해야 합니다.

당연히 원본의 가로:세로 비율이 달라지게 됩니다.

다른 방법은 각 슬라이드를 일단 그림으로 저장해서

각 슬라이드 그림을 불러와서 인쇄하는 방법입니다.

1. 파일 > 다른이름으로 저장에서 각 슬라이드를 PNG로 저장합니다.

2. 삽입 > 사진앨범을 누르고 저장한 PNG이미지들을 선택하고 4슬라이드씩 즉 그림4개씩으로 설정합니다.

 

그 다음 만들기를 누르고 생성된 사진 앨범을 편집하는 식입니다.

 

그런데 각 슬라이드에 삽입된 슬라이드 썸네일 그림을 편집하는 것도 번거롭긴 합니다.

이때 VBA로 슬라이드썸네일의 크기와 위치를 미리 설정하고 좀 더 편리하게 자동화할 수 있습니다.

1. 첨부한 SaveAsHandout1.pptm 을 다운로드 합니다.

2. 파일 속성에서 차단해제에 체크하고 파일을 열어서 매크로를 허용합니다.

3. IMG1 ~ IMG4 의 크기와 위치를 조정합니다. 나중에 슬라이드 그림이 들어갈 도형들입니다.

슬라이드를 5개, 6개, 9개, 10개, 12개, 15 등 원하는 개수만큼 넣어도 됩니다.

4. 준비가 되었으면 Alt+F8을 누르고 매크로 ToHandout를 실행합니다.

5. 대상 pptx 파일을 찾아 선택하면 됩니다.

 

전체과정

IMG 도형을 삽입, 배치, 크기조절 후 Alt+F8로 매크로 실행, 대상 파일 선택

 

실행 결과 슬라이드 썸네일이 원래 틀에 맞춰 삽입됨

6. 아래처럼 각 슬라이드를 이미지로 변환하고

미리 설정한 크기와 위치대로 4슬라이드썸네일이

한 페이지에 들어가게 됩니다. 이렇게 하면 원하는 크기와 위치로 유인물처럼 인쇄할 수 있습니다.

 

 

아래처럼 세로로 만들어 놓고 NameOn도 True로 해놓고 실행하면 번호가 있는 세로 유인물도 가능합니다.

 

IMG6까지 만들어서 슬라이드썸네일을 6개씩 삽입할 수도 있습니다.

 

 

원하는 대로 슬라이드를 배치할 수 있기 때문에

2개씩 출력할 때 아래처럼 대각선으로 2개 슬라이드씩 배치하는 것도 가능합니다.

 

 

 

7. 이제 뒤로 밀린 숨겨진 템플릿 슬라이드를 제외하고 인쇄하세요.

(자동으로 기준 슬라이드는 숨김처리되고 인쇄옵션도 숨긴 슬라이드는 인쇄에서 제외하도록 설정됩니다.)

사용코드:

더보기
Option Explicit

'파일명 출력 여부
Const NameOn As Boolean = False
'임시 이미지 확장자
Const Ext As String = "EMF"
'Const Ext As String = "PNG"

Sub ToHandout()

    Dim FilePath As String, FileName As String, PicName As String
    Dim i As Integer, sc As Integer, R As Integer, T As Integer
    Dim ppt As Presentation, ppt1 As Presentation
    Dim sld As Slide, sld1 As Slide
    Dim Shp As Shape
    
    Set ppt = ActivePresentation
    On Error Resume Next
    Set sld = ActiveWindow.Selection.SlideRange(1)
    On Error GoTo 0
    If sld Is Nothing Then MsgBox "IMG도형이 있는 샘플 유인물 슬라이드를 선택하세요.": Exit Sub
    
    For Each Shp In sld.Shapes
        If Shp.Name Like "IMG*" Then
            T = T + 1
        End If
    Next Shp
    If T = 0 Then MsgBox "현재 슬라이드에 IMG도형이 없습니다.": Exit Sub
    
    FilePath = ppt.Path & "\"
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "Target PPTx", "*.ppt?"
        .InitialFileName = FilePath
        .Title = "유인물로 만들 대상 ppt파일을 선택하세요"
        If .Show = -1 Then
            FileName = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With

    '기존 슬라이드 이미지로 저장
    i = 1
    Set ppt1 = Presentations.Open(FileName, msoTrue)
    For Each sld1 In ppt1.Slides
        PicName = FilePath & "_" & i & "." & Ext
        If Ext Like "EMF" Then
            sld1.Export PicName, Ext
        Else
            sld1.Export PicName, Ext, _
                ppt.PageSetup.SlideWidth * 2, ppt.PageSetup.SlideHeight * 2   '슬라이드 2배 크기 해상도
        End If
        i = i + 1
    Next sld1
    sc = i - 1
    
    'Handout 생성
    For i = 1 To sc
    
        R = (i - 1) Mod T + 1   '1,2,3,4, 1,2,3,4,...
        
        If R = 1 Then
            Set sld1 = sld.Duplicate(1)
            sld1.SlideShowTransition.Hidden = msoFalse
            sld1.MoveTo Int((i - 1) / T) + 1
        End If
        
        PicName = FilePath & "_" & i & "." & Ext
        Set Shp = sld1.Shapes("IMG" & R)
        Shp.Fill.UserPicture (PicName)
        
        If NameOn Then
            Set Shp = sld1.Shapes("Name" & R)
            Shp.TextFrame.TextRange.Text = i
        End If
        
        Kill PicName
    Next i
    
    ppt1.Close
    sld.SlideShowTransition.Hidden = msoTrue
    ppt.PrintOptions.PrintHiddenSlides = msoFalse
End Sub

 

- 출력할 용도이므로 템플릿 슬라이드의 크기는 A4사이즈입니다.

- 현재 가로인데 세로로 변경해도 됩니다.

- 슬라이드가 들어갈 위치는 반드시 IMG1, IMG2....IMGx 여야 합니다. 

- 페이지의 썸네일마다 Name 도형에 슬라이드 번호를 넣으려면 NameOn 을 True 로 변경하고 실행하세요.

- 내부적으로 인쇄에 적합하도록 각 슬라이드는 EMF 로 임시로 저장합니다.

- 임시저장된 EMF파일은 삭제합니다.

- 슬라이드를 도형에 채워넣은 방식이라 가로:세로 비율이 달라질 수 있습니다.

- 마지막 페이지에는 빈 도형이 남을 수 있습니다. 삭제해도 됩니다.

 

 

가로 템플릿 매크로파일:

SaveAsHandout1.pptm
0.05MB

 

세로 템플릿 매크로 파일:

SaveAsHandout2.pptm
0.06MB

 

샘플 대상 파일:

Sample40.pptx
0.08MB

 

 

관련 링크:

 

원하는 개수로 유인물 인쇄

https://konahn.tistory.com/entry/Slides2Handout

 

파워포인트 여러 슬라이드 유인물 출력

This VBA convert slides to 3-Slides Handout. 관련 링크: https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102&docId=315605202#answer1 위 링크에 답변대로 3슬라이드를 오른쪽에 줄이 아니라 빈 여백을 두고 싶을 때 짝수 페

konahn.tistory.com

 

빈줄 슬라이드 자동 추가

https://konahn.tistory.com/entry/AddLinedLayout

 

여러개의 빈줄이 있는 슬라이드 자동 추가

인쇄화면에 유인물 방식으로 프린트할 때 3슬라이드를 선택하면 아래처럼 슬라이드 오른쪽에 빈줄을 삽입해줍니다. 고정적으로 7줄을 출력하고 사용자가 변형할 수 있는 여지를 주지 않습니다.

konahn.tistory.com

 

 

지식인 질문

https://kin.naver.com/qna/detail.naver?d1id=1&dirId=102020103&docId=477097600