오른쪽 그림처럼 워드에서는 <탭>키를 누를 때마다 정해진 규칙대로 글머리 기호를 자동으로 삽입할 수 있습니다.

하지만 파워포인트에는 다단계 글머리 기호 서식스타일을 따로 지원하지 않습니다.

한번에 한 가지 글머리기호만 적용할 수 있습니다. 각 라인에 별도로 기호를 적용해야 합니다.

편한 방법은 워드에서 글머리 서식을 적용해서 텍스트를 만들어서 복사해서

파워포인트 슬라이드에 붙여넣는 방법이 가장 간편합니다.

파워포인트에서는 VBA나 오토핫키 등에 의존해야 합니다.

아래는 VBA로 현재 선택된 텍스트 상자에 미리 지정해놓은 글머리 서식을 적용하는 방법입니다.

아래 코드를 참고해서 원하는 스타일로 수정하셔야 합니다.

샘플로 두 가지 스타일입니다.

첫번째 스타일 - 숫자와 영문 스타일

두번째 스타일 - 특수문자 스타일

Alt+F11 창에 삽입 > 모듈 추가한 후 코드를 붙여넣고 창을 닫고

원하는 텍스트 상자를 선택하고 Alt+F8로 매크로 Style1, Style 2 를 실행하면 적용됩니다.

 

더보기
'Bullet.Style
'https://learn.microsoft.com/en-us/office/vba/api/powerpoint.ppnumberedbulletstyle
'https://www.brandwares.com/bestpractices/2017/06/xml-hacking-powerpoint-numbering-styles/

'Style 1 - Numbered
Sub myStyle1()

    Dim shp As Shape
    Dim pr As TextRange
    
    For Each shp In ActiveWindow.Selection.ShapeRange
    
        For Each pr In shp.TextFrame.TextRange.Paragraphs
            With pr.ParagraphFormat
                 
                If pr.IndentLevel = 1 Then                      '1.
                    .Bullet.Type = msoBulletNumbered
                    .Bullet.Style = ppBulletArabicPeriod        '3
        
                ElseIf pr.IndentLevel = 2 Then                  'A.
                    .Bullet.Type = msoBulletUnnumbered
                    .Bullet.Style = ppBulletAlphaUCPeriod       '1
                    
                ElseIf pr.IndentLevel = 3 Then                  '1)
                    .Bullet.Type = msoBulletNumbered
                    .Bullet.Style = ppBulletArabicParenRight    '2
                     
                ElseIf pr.IndentLevel = 4 Then                  'A)
                    .Bullet.Type = msoBulletUnnumbered
                    .Bullet.Style = msoBulletAlphaUCParenRight  '11
                    
                ElseIf pr.IndentLevel = 5 Then                  '(1)
                    .Bullet.Type = msoBulletNumbered
                    .Bullet.Style = msoBulletArabicParenBoth    '12
                    
                ElseIf pr.IndentLevel = 6 Then                  '(a)
                    .Bullet.Type = msoBulletUnnumbered
                    .Bullet.Style = msoBulletAlphaLCParenBoth   '8
                    
                ElseIf pr.IndentLevel = 7 Then                  '①
                    .Bullet.Type = msoBulletNumbered
                    .Bullet.Style = ppBulletCircleNumDBPlain    '18
                    
                ElseIf pr.IndentLevel = 8 Then                  'ⓐ
                    .Bullet.Type = msoBulletUnnumbered
                    .Bullet.Style = msoBulletAlphaUCParenBoth   '10
                    
                ElseIf pr.IndentLevel >= 9 Then          '
                    .Bullet.Type = msoBulletUnnumbered
                    
                    'level limit
                End If
            
            End With
        Next pr
    Next shp
    
End Sub

'Style2 - Character style
Sub myStyle2()

    Dim shp As Shape
    Dim pr As TextRange
    
    For Each shp In ActiveWindow.Selection.ShapeRange
    
        For Each pr In shp.TextFrame.TextRange.Paragraphs
            With pr.ParagraphFormat
                
                If pr.IndentLevel = 1 Then                      ' small dot
                    .Bullet.Type = msoBulletUnnumbered
                    .Bullet.Font.Name = "Arial"
                    .Bullet.Character = 8226
        
                ElseIf pr.IndentLevel = 2 Then                  'diamond
                    .Bullet.Type = msoBulletUnnumbered
                    .Bullet.Font.Name = "Wingdings"
                    .Bullet.Character = 117
                    
                ElseIf pr.IndentLevel = 3 Then                  'small square
                    .Bullet.Type = msoBulletUnnumbered
                    .Bullet.Font.Name = "Wingdings"
                    .Bullet.Character = 167
                     
                ElseIf pr.IndentLevel = 4 Then                  'small circle
                    .Bullet.Type = msoBulletUnnumbered
                    .Bullet.Font.Name = "Wingdings"
                    .Bullet.Character = 108
                    
                ElseIf pr.IndentLevel = 5 Then                  'boomerang
                    .Bullet.Type = msoBulletUnnumbered
                    .Bullet.Font.Name = "Wingdings"
                    .Bullet.Character = 216
                    
                ElseIf pr.IndentLevel = 6 Then                  'check
                    .Bullet.Type = msoBulletUnnumbered
                    .Bullet.Font.Name = "Wingdings"
                    .Bullet.Character = 252
                    
                ElseIf pr.IndentLevel = 7 Then                  'check in square
                    .Bullet.Type = msoBulletUnnumbered
                    .Bullet.Font.Name = "Wingdings"
                    .Bullet.Character = 254
                    
                ElseIf pr.IndentLevel = 8 Then                  'right arrow
                    .Bullet.Type = msoBulletUnnumbered
                    .Bullet.Font.Name = "Wingdings"
                     .Bullet.Character = 61672
                ElseIf pr.IndentLevel >= 9 Then          '
                    .Bullet.Type = msoBulletUnnumbered
                    
                    'level limit
                End If
            
            End With
        Next pr
    Next shp
    
End Sub

'탭키에 반응할 경우
Sub Ttab()

    Dim sld As Slide
    Dim shp As Shape
    Dim tr As TextRange2
    
    Set tr = ActiveWindow.Selection.TextRange2
    
    With tr.ParagraphFormat
        '처음 탭키를 친 경우 글머리 번호 적용
        If .IndentLevel = 1 Then                '1.
            If .Bullet.Type = msoBulletNone Then
                .Bullet.Type = msoBulletNumbered
                .Bullet.Style = ppBulletArabicPeriod  '3
                Exit Sub
            End If
        '최대 9레벨
        ElseIf .IndentLevel >= 9 Then
            Exit Sub
        End If
        
        '단계를 증가
        .IndentLevel = .IndentLevel + 1
        Debug.Print .IndentLevel
         If .IndentLevel = 2 Then                       'A.
            .Bullet.Type = msoBulletUnnumbered
            .Bullet.Style = ppBulletAlphaUCPeriod       '1
            
         ElseIf .IndentLevel = 3 Then                   '1)
            .Bullet.Type = msoBulletNumbered
            .Bullet.Style = ppBulletArabicParenRight    '2
             
         ElseIf .IndentLevel = 4 Then                   'A)
            .Bullet.Type = msoBulletUnnumbered
            .Bullet.Style = msoBulletAlphaUCParenRight  '11
            
         ElseIf .IndentLevel = 5 Then                   '(1)
            .Bullet.Type = msoBulletNumbered
            .Bullet.Style = msoBulletArabicParenBoth    '12
            
         ElseIf .IndentLevel = 6 Then                   '(a)
            .Bullet.Type = msoBulletUnnumbered
            .Bullet.Style = msoBulletAlphaLCParenBoth   '8
            
         ElseIf .IndentLevel = 7 Then                   '①
            .Bullet.Type = msoBulletNumbered
            .Bullet.Style = ppBulletCircleNumDBPlain    '18
            
         ElseIf .IndentLevel = 8 Then                   'ⓐ
            .Bullet.Type = msoBulletUnnumbered
            .Bullet.Style = msoBulletAlphaUCParenBoth   '10
            
         ElseIf .IndentLevel >= 9 Then          '
            .Bullet.Type = msoBulletUnnumbered
            
            'level limit
         End If
    
    End With
    
End Sub

 

그리고 내어쓰기와 들여쓰기 간격은 아래 답변의 코드를 참고하세요.

https://kin.naver.com/qna/detail.naver?d1id=1&dirId=102020103&docId=433830813

 

파워포인트 자동으로 내어쓰기 설정법

안녕하세요? 파워포인트 내어쓰기 관련하여 질문드립니다.아래아한글로 문서작업할 때에는 Shift+Tab 기능을 통해 내어쓰기 위치를 조절할 수 있었는데파워포인트에서는 되지 않아 방법...

kin.naver.com

 

주요 코드 발췌:

더보기
        '현재 첫번째 단락만 적용
        Set para = .TextRange2.Paragraphs(1)
        
        'ind = 선택텍스트 x좌표 - 도형x좌표 - 도형내 왼쪽 여백  
        ind = para.BoundLeft - .ShapeRange(1).Left - .ShapeRange(1).TextFrame.MarginLeft
        '단락전체 들여쓰기
        para.ParagraphFormat.LeftIndent = ind
        '첫번째줄 들여쓰기(음수이면 내어쓰기)
        para.ParagraphFormat.FirstLineIndent = -ind

 

샘플 파일 첨부합니다.

MyIndentStyle1.pptm
0.05MB

 

 

 

관련: 지식인