반응형
매크로 설명
- 기존 포스팅에서 이와 유사한 매크로를 다루었지만,
- 사소하지만 꽤나 중대한 문제가 있었기에 리뉴얼해서 올린다.
- 사소하지만 꽤나 중대한 문제라 함은, 기존에 만든 매크로의 경우 파워포인트 프로그램에서 실행된다.
- 이 경우 해당 PPT 파일을 매크로가 사용가능한 .pptm으로 변경하고 코드를 복붙하고 실행해야 하는 번거로움이 있었다.
- 이를 해결하기 위해 엑셀을 통해 PPT 파일을 제어하도록 변경한 매크로이다.
- 정상적으로 작동하려면 PowerPoint Object Library 참조를 추가해주어야 한다.
- VBA 편집기 화면 -> 도구 -> 참조 -> Microsoft PowerPoint ##.# Object Library를 찾아서 체크 -> 확인
매크로 실행 동영상
VBA Code
Option Explicit Sub picBatch() Dim i As Long, cnt As Long Dim pptFilePath As String Dim pic As Object Dim myPPTapp As PowerPoint.Application Dim myPPTdoc As PowerPoint.Presentation With Application.FileDialog(msoFileDialogFilePicker) '파일 선택 대화창 오픈 .Show If .SelectedItems.Count < 1 Then '선택한 파일이 없는 경우 Exit Sub 'VBA 종료 Else '파일을 선택한 경우 pptFilePath = .SelectedItems(1) '선택한 파일의 경로 + 파일명 + 확장자까지 입력 Set myPPTapp = CreateObject("PowerPoint.Application") '파워포인트 응용프로그램 초기화 Set myPPTdoc = myPPTapp.Presentations.Open(pptFilePath) '해당 파워포인트 파일 실행 End If End With For i = 1 To myPPTdoc.Slides.Count '전체 슬라이드를 돌면서 For Each pic In myPPTdoc.Slides(i).Shapes '각 슬라이드의 Shapes 중에서 If pic.Type = msoPicture Then '특정 Shape가 그림인 경우 With pic .LockAspectRatio = msoFalse '가로/세로 비율고정 해제 .Width = 200 '가로 이미지 크기 .Height = 300 '세로 이미지 크기 End With End If Next pic Next i Set myPPTdoc = Nothing Set myPPTapp = Nothing MsgBox "이미지 크기가 모두 변경되었습니다." End Sub

반응형
'VBA Macro > VBA PowerPoint' 카테고리의 다른 글
[파워포인트 VBA] 전체 슬라이드 글씨 색깔 바꾸기 (0) | 2018.08.03 |
---|---|
[파워포인트 VBA] 차트 데이터레이블 일괄 변경 매크로 (1) | 2018.07.12 |
파워포인트에 사용된 이미지 일괄 저장 매크로 (0) | 2017.12.14 |
[파워포인트 매크로] 폴더 안의 이미지 확장자 일괄변경 매크로 (0) | 2017.12.06 |
파워포인트 그림 크기 일괄 변경 매크로 #1 (1) | 2017.10.17 |