VBA Macro/VBA PowerPoint 9

[파워포인트 VBA] 도형(Shape) 개체 다루기

파워포인트 VBA에서 도형 개체 다루기 이번 포스팅은 파워포인트 VBA를 통해 도형 개체를 다루는 방법이다. 파워포인트에서 다루어지는 대부분의 개체는 도형 개체(Shape Object)이다. 도형 개체에는 그림, 선, 표, 텍스트상자, 차트 등 수없이 많다. 도형 개체가 매우 다양하기 때문에 여기서는 표(Table Object)를 중심으로 설명한다. 이하의 설명은 표 이외의 모든 도형 개체에 적용될 수 있는 내용이다. 여기서 다루는 예제는 기본적으로 마이크로소프트 MSDN의 개체모델을 참고하였다. 파워포인트 개체모델 링크(새창) 해당 링크에서 원하는 Object를 찾으려면 좌측의 Filter by Title에서 Object를 검색하거나 직접 스크롤해서 Object를 찾으면 된다. 테이블 개체(Table ..

[파워포인트 VBA] 전체 슬라이드 글씨 색깔 바꾸기

매크로 설명 파워포인트 각 슬라이드의 텍스트 서식 중에서 색깔을 일괄적으로 변경하는 매크로이다. 파워포인트 슬라이드가 많아질수록 직접 변경하기 번거로울 때 사용하면 좋다. 변경되는 Shape는 텍스트를 가진 텍스트박스, 도형, 표의 모든 텍스트이다. 파워포인트가 실행되어 있어야 하고, 코드는 엑셀에 작성하여 제어하는 방식이다. 엑셀 개발자도구에서 PowerPoint Object Library를 참조해주어야 한다. ※ 차트의 글씨 색깔은 변경하지 않는다. (참고) 적용 결과 매크로 실행 동영상 VBA Code Option Explicit Sub c_changer() Dim pptRef As PowerPoint.Application Dim sld As PowerPoint.Slide Dim shp As Pow..

[파워포인트 VBA] 차트 데이터레이블 일괄 변경 매크로

매크로 설명 파워포인트 차트의 데이터레이블 설정을 일괄적으로 변경하는 매크로이다. 특히 데이터레이블 위치를 임의로 변경하는 노가다를 해야하는 경우에 유용할 것 같다. 이 매크로는 엑셀을 통해 파워포인트의 차트를 제어하는 방식으로 작동한다. 파워포인트의 차트 개체모델에 접근하는 방식과 엑셀의 차트 개체모델에 접근하는 방식이 다르기 때문에, 엑셀에 적용하는 경우에는 오류가 발생 수도 있다. 매크로 실행 동영상 VBA Code Option Explicit Sub chart_batch() Dim pptRef As PowerPoint.Application Dim curSlide As Long Dim shName As String Dim objChart As PowerPoint.Chart Dim seriesCnt,..

[파워포인트 VBA] 그림 크기 일괄 변경하기 (엑셀에서 제어)

매크로 설명 기존 포스팅에서 이와 유사한 매크로를 다루었지만, 사소하지만 꽤나 중대한 문제가 있었기에 리뉴얼해서 올린다. 사소하지만 꽤나 중대한 문제라 함은, 기존에 만든 매크로의 경우 파워포인트 프로그램에서 실행된다. 이 경우 해당 PPT 파일을 매크로가 사용가능한 .pptm으로 변경하고 코드를 복붙하고 실행해야 하는 번거로움이 있었다. 이를 해결하기 위해 엑셀을 통해 PPT 파일을 제어하도록 변경한 매크로이다. 정상적으로 작동하려면 PowerPoint Object Library 참조를 추가해주어야 한다. VBA 편집기 화면 -> 도구 -> 참조 -> Microsoft PowerPoint ##.# Object Library를 찾아서 체크 -> 확인 매크로 실행 동영상 VBA Code Option Exp..

파워포인트에 사용된 이미지 일괄 저장 매크로

매크로 설명 파워포인트 슬라이드에 있는 그림들을 일괄적으로 저장하는 코드를 응용. 파워포인트에 사용된 모든 이미지를 특정 폴더 안에 그 폴더 이름으로 저장하는 매크로이다. 매크로 실행 동영상 VBA Code Option Explicit Sub picSaveAs() Dim i As Long, cnt As Long Dim savePath As String, folderName As String Dim pic As Shape Dim targetFormat As String targetFormat = ".PNG" '그림을 저장할 형식은 PNG With Application.FileDialog(msoFileDialogFolderPicker) .Show If .SelectedItems.Count = 0 Then '..

[파워포인트 매크로] 폴더 안의 이미지 확장자 일괄변경 매크로

매크로 설명 선택한 폴더 내의 이미지 파일 확장자를 변경하는 매크로. 선택한 폴더 안에서 미리 설정한 확장자(예컨대, JPG)를 원하는 확장자(예컨대, PNG)로 다시 저장해주는 매크로. 일일이 파일을 불러와서 저장할 필요없이 일괄적으로 변경 가능하다. 아래 VBA Code 중 폴더를 선택하고 폴더 내 파일들을 순환하는 코드는 니꾸님의 블로그를 참조하였음을 밝힌다. 매크로 실행 동영상(실행 방법 포함) VBA Code Sub img_batch_convert() Dim myFileName As String '불러올 파일명 변수 Dim strPath As String '불러올 파일이 있는 경로변수 Dim myFormat As String '불러올 파일의 확장자 변수 Dim targetFormat As Str..

파워포인트 그림 크기 일괄 변경 매크로 #1

매크로 설명 파워포인트 이미지 속성 일괄 변경 매크로이다. 모든 슬라이드의 삽입 이미지만 따로 크기를 변경해준다. 그림의 가로/세로 비율이 중요하다면 LockAspectRatio 속성을 msoTrue로 잡아주어야 한다. 매크로 실행 동영상(실행방법 포함) VBA Code Option Explicit Dim i As Long Dim pic As Shape Dim last_slide As Slide Sub pic_change() For i = 1 To ActivePresentation.Slides.Count For Each pic In ActivePresentation.Slides(i).Shapes If pic.Type = msoPicture Then '그림 파일이면 With pic .LockAspectRa..

파워포인트 슬라이드 번호 삽입 매크로

슬라이드 바닥글을 활용하여 페이지번호를 삽입하는 기능이 있지만, 첫째 슬라이드가 아닌 임의의 슬라이드에서 임의의 번호로 시작하는 기능은 없다. 더욱이 슬라이드 마스터가 익숙하지 않은 사람이라면 헷갈리기 쉽다. 이 매크로는 슬라이드 페이지 번호를 자동으로 삽입해주는 매크로이다. 번호의 서식은 자유로이 변경할 수 있고, 빈 슬라이드를 간지로 쓰는 경우에는 레이아웃 인덱스를 지정해서 번호가 붙는것을 방지할 수 있다. VBA Code Option Explicit Dim i As Long, cnt As Long Dim sld_height As Long, sld_width As Long Dim mySlide As Slide, myShp As Shape Dim page_style As String Sub pptx_p..

글꼴(폰트)이 설치된 슬라이드 찾기 매크로

S Y N O P S I S #VBA로 폰트 찾기 간혹 PT 작업 중에 저장하면 폰트 때문에 저장할 수 없을 때가 있다. 슬라이드가 많아지면 보통 슬라이드를 복제해서 쓰는 경우가 많기 때문에 내가 사용한 글꼴이 어떤 슬라이드에 있는지 일일이 찾아야 한다. 자체적으로 글꼴을 일괄적으로 변환해주는 기능이 있는데 글꼴이 설치되어 있어야 가능하다. 아래 매크로는 '특정 글꼴이 사용되고 있는 슬라이드를 찾고 싶은 경우'에 사용한다. 글꼴을 입력하면 첫번째부터 마지막 슬라이드까지 내가 검색한 글꼴이 사용되는 슬라이드 번호를 알려주고, 해당 위치로 이동한다. VBA Code Option Explicit Dim myShp As Shape Dim slide_num As Long Dim myFont As Variant D..