본문 바로가기

WeekdayLife

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

 

 

 

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

파워포인트를 쓰다보면,

100장이 넘는 문서에 폰트나 텍스트 서식을 한꺼번에 바꾸려면,암담할 때가 있다.

폰트 바꾸기 기능은 있지만, 서식을 일괄로 바꾸는 기능은 아직 없는 것 같다.

 

VBA로 한번 해보자.

 

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

1번은 그냥 텍스트 박스.

2번은 표안에 있는 텍스트.

 

 

 

 

 

구조는 아래와 같다.

 

1. 전체슬라이드를 대상으로 슬라이드별 쉐이프를 순서대로 검사한다.

2. (IF)텍스트박스면 안에 있는 텍스트에 볼드와 이탤릭 효과를 준다.

3. (ELSEIF) 표이면, 표 셀을 하나하나씩 검사하여 텍스트에 볼드와 이탤릭 효과를 준다.

4. 그렇지 않으면, 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

 

 

실행결과는 아래와 같다.

 

 

 

파워포인트 VBA는 정보를 찾기가 정말 어렵다.

다들 잘 알아서 해보시길...