자주 묻는 질문입니다.

 

기본적으로 파워포인트 슬라이드를 다른이름으로 저장에서 그림으로 저장하면

960 * 720 로 96DPI 정도로 적당히 작은 사이즈로 저장이 됩니다.

 

이 경우 만약 좀더 크게 긴쪽이 3072px 까지 크게 저장하려면 레지스트리를 편집하도록 안내합니다.

docs.microsoft.com/ko-kr/office/troubleshoot/powerpoint/change-export-slide-resolution

 

PowerPoint 슬라이드의 내보내기 해상도를 변경하는 방법

PowerPoint 슬라이드를 그림으로 저장할 때 dpi(인치당 도트 수) 설정을 변경하는 방법을 설명합니다. 이렇게 하려면 새 레지스트리 값을 추가해야 합니다.

docs.microsoft.com

 

하지만 안된다는 분들도 있고

레지스트리 변경은 영구적인 거라 다시 변경하는 것이 귀찮기 때문에

VBA매크로를 이용하는 방법을 안내합니다.

 

 

코드는 아래와 같습니다.


'Alt-F11누르고 삽입-모듈 추가하고 아래 코드 넣고 F5로 실행하면 각 슬라이드를 현재 위치에 3072px정도 크기의 png로 저장합니다.

'//전체 슬라이드 PNG로 저장
Sub SaveAllSlides2PNG()
    Dim sld As Slide
    With ActivePresentation
        w = 3072 '2010버전의 경우 최대 3072px '2019의 경우 9216px도 가능
        h = w * (.PageSetup.SlideHeight / .PageSetup.SlideWidth) ' 비율유지한 상태로 최대 세로크기
        For Each sld In .Slides
            sld.Export .Path & "\PIC_" & Format(sld.SlideIndex, "000") & ".png", "PNG", w, h
        Next sld
    End With
End Sub

'//선택된 슬라이드(들)을 PNG로 저장
Sub SaveCurrentSlides2PNG()
    Dim sld As Slide
    With ActivePresentation
        w = 1920 '2010버전의 경우 최대 3072px '2019의 경우 9216px도 가능
        h = w * (.PageSetup.SlideHeight / .PageSetup.SlideWidth) ' 비율유지한 상태로 최대 세로크기
        For Each sld In ActiveWindow.Selection.SlideRange
            sld.Export .Path & "\PIC_" & Format(sld.SlideIndex, "000") & ".png", "PNG", w, h
        Next sld
    End With
End Sub

'// 모든 슬라이드를 벡터이미지(EMF)로 저장, EMF는 확대 인쇄에 적합
Sub SaveAllSlides2EMF()
    Dim sld As Slide
    With ActivePresentation
        For Each sld In .Slides
            sld.Export .Path & "\PIC_" & Format(sld.SlideIndex, "000") & ".emf", "EMF"
        Next sld
    End With
End Sub

'// 선택된 슬라이드를 벡터이미지(EMF)로 저장, EMF는 확대 인쇄에 적합
Sub SaveCurrentSlides2EMF()
    Dim sld As Slide
    With ActivePresentation
        For Each sld In ActiveWindow.Selection.SlideRange
            sld.Export .Path & "\PIC_" & Format(sld.SlideIndex, "000") & ".emf", "EMF"
        Next sld
    End With
End Sub

 

파워포인트에서 Alt-F11누르고 창이 뜨면

삽입-모듈 추가하고 위의 코드를 넣고

F5로 매크로를 실행합니다.

(또는 VBE창을 닫고 일반편집화면에서 Alt-F8로 실행합니다.)

1. SaveAllSlides2PNG는 모든 슬라이드를 현재 위치에 가로 3072px정도 크기의 png(PIC_00x.png)로 저장합니다.

2019나 365버전이시면 3072라는 숫자를 9216px까지 크게 바꿀 수 있습니다.

2. SaveCurrentSlides2PNG는 현재 선택된 슬라이드들을 현재 위치에 가로 3072px정도 크기의 png로 저장합니다.

2019나 365버전이시면 3072라는 숫자를 9216px까지 크게 바꿀 수 있습니다.

3. SaveAllSlides2EMF는 모든 슬라이드를 현재 위치에 무제한 확대가 가능한 emf 벡터이미지로 저장합니다.

단, 원본이 비트맵사진이 아니라 도형이나 선, 텍스트로 이루어진 개체여야 벡터이미지로 저장합니다.

 

4. SaveCurrentSlides2EMF는 현재 선택된 슬라이드를 현재 위치에 무제한 확대가 가능한 emf 벡터이미지로 저장합니다. 단, 원본이 비트맵사진이 아니라 도형이나 선, 텍스트로 이루어진 개체여야 벡터이미지로 저장합니다.

 

 

SaveSlides1.pptm
0.09MB

 

 

슬라이드가 세로인 경우를 반영하고 저장 이미지 긴 쪽의 크기를 입력받아 그림으로 저장하는 버전

 

더보기
'Alt-F11누르고 삽입-모듈 추가하고 아래 코드 넣고 F5로 실행
Const Ext As String = "emf" 'emf, wmf, png, jpg,....

Sub SaveSlides()
    Dim sld As Slide
    Dim fname As String, usize As String
    Dim size As Single, w As Single, h As Single
    Dim i As Integer

    size = 3072 '2010버전의 경우 최대 3072px   '2019의 경우 9216px도 가능
    If Application.Version >= 15 Then size = 9216
    
    With ActivePresentation
        If Not .Saved Then MsgBox "파일을 먼저 저장해야합니다.", vbinformaion: Exit Sub
        
        usize = InputBox("저장할 이미지의 긴 쪽의 크기를 픽셀단위로 입력하세요.", "현재 슬라이드 이미지 저장", size)
        If Not IsNumeric(usize) Then MsgBox "숫자로 입력하세요", vbInformation: Exit Sub
        size = CSng(usize)
        
        If .PageSetup.SlideOrientation = msoOrientationHorizontal Then
            w = size
            h = w * (.PageSetup.SlideHeight / .PageSetup.SlideWidth) ' 비율유지한 상태로 최대 크기
        Else
            h = size
            w = h * (.PageSetup.SlideWidth / .PageSetup.SlideHeight)
        End If
        'Debug.Print w, h
        
        For Each sld In ActiveWindow.Selection.SlideRange
            fname = .Path & "\" & Left(.Name, InStrRev(.Name, ".") - 1) & "_" & Format(sld.SlideIndex, "000") & "." & Ext
            If Ext = "emf" Or Ext = "wmf" Then
                sld.Export fname, Ext
            Else
                sld.Export fname, Ext, w, h
            End If
           
            i = i + 1
        Next sld
        
        MsgBox i & "개의 슬라이드 이미지 저장 완료"
    End With
    
End Sub

파일 참고하세요.

SaveSlides2.pptm
0.07MB