자주 묻는 질문입니다.
기본적으로 파워포인트 슬라이드를 다른이름으로 저장에서 그림으로 저장하면
960 * 720 로 96DPI 정도로 적당히 작은 사이즈로 저장이 됩니다.
이 경우 만약 좀더 크게 긴쪽이 3072px 까지 크게 저장하려면 레지스트리를 편집하도록 안내합니다.
docs.microsoft.com/ko-kr/office/troubleshoot/powerpoint/change-export-slide-resolution
하지만 안된다는 분들도 있고
레지스트리 변경은 영구적인 거라 다시 변경하는 것이 귀찮기 때문에
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 벡터이미지로 저장합니다. 단, 원본이 비트맵사진이 아니라 도형이나 선, 텍스트로 이루어진 개체여야 벡터이미지로 저장합니다.
슬라이드가 세로인 경우를 반영하고 저장 이미지 긴 쪽의 크기를 입력받아 그림으로 저장하는 버전
'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
파일 참고하세요.
'PPT+VBA' 카테고리의 다른 글
MS파워포인트 버전별 차이점 정리 (0) | 2021.01.26 |
---|---|
PPT 소책자(Booklet) 인쇄 (0) | 2021.01.09 |
도형병합으로 정다각형(Regular Polygon) 그리기 (4) | 2020.12.16 |
PPT 홀수, 짝수페이지 따로 출력하기 (수동 양면 출력) (1) | 2020.12.02 |
룰렛 회전판 생성기 v2 (6) | 2020.10.16 |
회전 룰렛(회전판) 모음 및 자동 생성기 (12) | 2020.10.14 |
슬라이드의 테이블(표)과 차트의 데이터 연동시키기 (1) | 2020.10.08 |
일괄로 일정한 틀의 이미지 대량 생성 (2) | 2020.08.28 |
최근댓글