파워포인트(ppt) 텍스트 서식 한꺼번에 적용하기(볼드, 이탤릭)

파워포인트를 쓰다보면, 100장이 넘는 문서에 폰트나 텍스트 서식을 한꺼번에 바꾸려면,암담할 때가 있다.
폰트 바꾸기 기능은 있지만, 서식을 일괄로 바꾸는 기능은 아직 없는 것 같다.

VBA로 한번 해보자.

그냥 샘플로, 2개의 슬라이드를 준비했다.

  • 1번은 그냥 텍스트 박스.
  • 2번은 표안에 있는 텍스트.

myimg

myimg



구조는 아래와 같다.

  • 전체슬라이드를 대상으로 슬라이드별 쉐이프를 순서대로 검사한다.
  • (IF)텍스트박스면 안에 있는 텍스트에 볼드와 이탤릭 효과를 준다.
  • (ELSEIF) 표이면, 표 셀을 하나하나씩 검사하여 텍스트에 볼드와 이탤릭 효과를 준다. 그렇지 않으면, IF 구문을 빠져나간다.

IF 구문을 쓰지 않으면 복잡하지 않았을텐데, 그림이나 표에서 에러가 난다.

Sub outL_off()

Dim x As Integer
Dim y As Integer

GG:

전체슬라이드수 = ActivePresentation.Slides.Count

For x = 1 To 전체슬라이드수
  슬라이드안에있는도형수 = ActivePresentation.Slides(x).Shapes().Count
    For y = 1 To 슬라이드안에있는도형수    
        If ActivePresentation.Slides(x).Shapes(y).HasTextFrame Then
            With ActivePresentation.Slides(x).Shapes(y).TextFrame2.TextRange.Font
            .Bold = True
            .Italic = True
            End With   
        ElseIf ActivePresentation.Slides(x).Shapes(y).HasTable = True Then
            endR = ActivePresentation.Slides(x).Shapes(y).Table.Rows.Count
            endC = ActivePresentation.Slides(x).Shapes(y).Table.Columns.Count            

            For R = 1 To endR
                For C = 1 To endC
                    With ActivePresentation.Slides(x).Shapes(y).Table.Cell(R, C).Shape.TextFrame2.TextRange.Font
                    .Bold = True
                    .Italic = True
                    End With
                Next C
            Next R
        ElseIf ActivePresentation.Slides(x).Shapes(y).Type = msoGroup Then
        ActivePresentation.Slides(x).Shapes(y).Ungroup

        GoTo GG:
        Else
        GoTo DD:
        End If
    DD:
    Next y
Next x
End Sub


실행결과는 아래와 같다.

myimg



파워포인트 VBA는 정보를 찾기가 정말 어렵다.
다들 잘 알아서 해보시길…

끝.