파워포인트에서는 그림에 대해
수정메뉴에서 선명도(Sharpen/Blur), 밝기/대비(Brightness/Contrast) 효과를,
색메뉴에서 채도(Saturation), 색조, 다시칠하기(Recolor)
꾸밈효과메뉴에서 여러가지 꾸밈효과
365구독버전에서는 투명도까지
지원합니다.
슬라이드의 모든 그림에 대해 일일이 똑같은 그림효과를 적용하는 것이 어렵습니다.
서식복사도 작동하지 않습니다.
이런 경우 VBA로 특정 그림의 그림효과들을 복사해서
다른 모듬 그림에 그림효과를 일괄로 적용할 수 있습니다.
1슬라이드의 그림에 몇가지 효과를 적용한 뒤에 ApplyPictureEffects 를 실행하는 시연 영상입니다.
더보기
Sub applyPictureEffects()
Dim shpFrom As Shape, shp As Shape
Dim sld As Slide
Dim pres As Presentation
Dim eft As PictureEffects
Dim i%, j%
'현재 선택된 그림의 설정을 복사
Set shpFrom = ActiveWindow.Selection.ShapeRange(1)
Set pres = shpFrom.Parent.Parent
Set eft = shpFrom.Fill.PictureEffects
For Each sld In pres.Slides
For Each shp In sld.Shapes
If shp.Type = msoPicture And Not shp Is shpFrom Then
With shp.Fill.PictureEffects
'first remove all picture effects
While .Count > 0
.Delete (1)
Wend
'copy and apply effects
For i = 1 To eft.Count
.Insert (eft.Item(i).Type)
For j = 1 To eft.Item(i).EffectParameters.Count
.Item(i).EffectParameters(j).Value = eft.Item(i).EffectParameters.Item(j).Value
DoEvents
Next j
Next i
End With
End If
Next shp
Next sld
End Sub
그림개체.Fill.PictureEffects 가 collection 구조로 이루어져 있고
각 item 마다 다시 여러가지 하위 collection이 들어있어서 접근 구조가 어려울 수 있습니다.
일단 기존의 PictureEffect를 모두 삭제하고 나서
각각의 PictureEffect 아래에 EffectParameter의 개수만큼 복사해서 적용하는 식입니다.
일단은 현재 선택된 기준 PictureEffect들을 복사해서 다른 그림들에 일괄 적용하는데
Shadow나 Glow, Reflection 등 다른 속성은 더 추가를 해줘야합니다.
아래 샘플 파일은 Stock Image 를 몇개를 대상으로 1슬라이드의 그림 효과를 다른 그림들에 적용하는 예제입니다.
'PPT+VBA' 카테고리의 다른 글
개체 잠금 효과 구현 (0) | 2021.10.07 |
---|---|
자동으로 각도 그리기 (0) | 2021.09.30 |
표안의 셀들을 도형으로 변환, 각각 애니메이션 적용하기 (5) | 2021.09.20 |
PPT 슬라이드내의 글자 사용빈도 통계 (0) | 2021.09.12 |
파워포인트 파일을 저장 후 다시 열 때 읽기전용 (Read Only) 로 바뀌는 경우 (0) | 2021.09.08 |
슬라이드 번호를 특정 페이지부터 시작 (6) | 2021.08.09 |
이동경로 애니메이션의 VML 기초 문법 및 수정 방법 (0) | 2021.08.02 |
RGB Color Constants, VBA RGB 색상 예약어 목록 (0) | 2021.07.04 |
최근댓글