디자인 > 슬라이드 크기에서 예를 들어  A4가로 크기를 16:9가로로 사이즈를 바꿀 때

최대화 의 경우

'최대화'를 적용하면 개체의 위 아래가 슬라이드 세로 높이를 벗어나고

 

맞춤 확인의 경우

'맞춤확인'으로 선택하면 슬라이드 좌/우에 여백이 생깁니다.

이럴 때 아래 VBA를 이용해서 일괄로 개체의 가로, 세로 크기와 위치를

슬라이드 크기에 가득차게 맞춤 조정해 보세요.

A4프리젠테이션에서 Alt-F11 누르고 삽입 > 모듈을 추가하고

아래 코드를 붙여넣고 F5로 실행하면

현재 프리젠테이션을 복제하고 나서 슬라이드 크기를 16:9로 만들고

개체의 크기를 새 슬라이드에 가득차게 계산해서 변경시켜줍니다.

(만들어질 슬라이드의 크기를 A4나 4:3으로 바꾸려면 .SlideSize 를 주석을 참고하여 수정할 것!)

 
Option Explicit

Sub ChangeSlideSize()

    Dim pres As Presentation, pres1 As Presentation
    Dim sld As Slide, sld1 As Slide, shp As Shape, shp1 As Shape
    Dim SW!, SH!, SW1!, SH1!, i As Integer
    
    'Original Presentation
    Set pres = ActivePresentation
    With pres.PageSetup
        SW = .SlideWidth
        SH = .SlideHeight
    End With
    
    'New Presentation
    Set pres1 = Presentations.Open(FileName:=pres.FullName, ReadOnly:=msoFalse, _
                        Untitled:=msoTrue, WithWindow:=msoTrue)
    With pres1.PageSetup
        .SlideSize = ppSlideSizeOnScreen16x9   '// 16:9
        SW1 = .SlideWidth
        SH1 = .SlideHeight
    End With
 
    'Adjust the size and location of each shape in slides according to the rate
    For Each sld1 In pres1.Slides
        Set sld = pres.Slides(sld1.SlideIndex)
        i = 0
        For Each shp1 In sld1.Shapes
            i = i + 1	'수정 240810
            Set shp = sld.Shapes(i)
            With shp1
                .LockAspectRatio = msoFalse
                .Width = SW1 / SW * shp.Width
                .Height = SH1 / SH * shp.Height
                .Left = SW1 / SW * shp.Left
                .Top = SH1 / SH * shp.Top
            End With
        Next shp1
    Next sld1
    
End Sub

실행 전(좌)과 실행 후(우)

단, 폰트 크기는 파워포인트가 자체적으로 크기를 변경한 대로 둡니다.

실행 화면  캡쳐

 

첨부한 샘플파일을 참고하세요.

 

** [2024.08.10 수정] 슬라이드 번호 등이 있는 경우 도형의 ZOrderPosition이 일반적인 규칙과 달라 오류가 발생하는 상황을 고려하여 도형의 Index로 도형을 찾도록 수정하였습니다.

ChangeSlideSize1.pptm
0.08MB

 

** 화면아래부분을 제외하고 윗부분만 사용하는 환경에서 아래 부분을 제외하고 슬라이드 크기를 줄여주는 버전입니다.

첨부한 파일을 다운받아 파일속성에서 차단해제한 다음 매크로를 허용해서 엽니다.

ChangeSlideSize169toSmall.pptm
0.09MB

 

자신의 파일을 열고 화면 아래에 필요 없는 부분에 검은색 네모를 배치하고 선택합니다.

alt+F8을 누르고 매크로위치를 pptm파일로 지정하고 ChangeSlideSizeToSmall 을 실행합니다.

그러면 원래 프레젠테이션 디자인을 아래 검은 부분을 뺀 만큼 높이가 낮아지게 변경시켜줍니다.

코드에서 PreserveRatio = True로 바꾸고 실행하면 아래처럼 가로넓이도 원래 비율을 유지한 채로 줄여줍니다.

​빔프로젝터화면이 아래부분이 필요 없을 때 이 방법으로 슬라이드가 윗부분에만 나오도록 할 수 있습니다.

(단, 표의 경우 폰트 크기가 큰 경우 높이가 내려갈 수 있으므로 사후에 줄여줄 필요가 있습니다.)

참고: 지식인