PPT+VBA
글머리 기호 Bold체 해제
쵸코난
2024. 9. 7. 15:41
파워포인트에서 글머리기호 숫자를 적용하고 나면
시작하는 글자가 Bold체이면 글머리기호 숫자도 따라서 Bold로 변해 버립니다.
글머리 문단 시작글자를 진하게 설정하면 글머리 숫자는
일반 굵기의 글자로 변경이 안된다는 불편한 점이 있습니다.
이 때 시작 글자 앞에 보이지 않는 '넓이 없는 유령문자'인 유니코드 '200B'글자를 삽입하고
Bold 속성을 해제하는 방법이 있습니다.
글머리 기호 다음 위치에서 삽입 >기호를 누르고
유니코드로 문자코드를 200b 를 입력하고 '삽입'하시면 이 넓이 없는 유령문자를 넣을 수 있습니다.
![](https://blog.kakaocdn.net/dn/cQW6Lx/btsJuWTP0CL/MF5l5cX0IPhV7Xx9ft7ewK/img.png)
그리고 나서 이 유령문자에 Ctrl+B 로 볼드체를 해제해 주시면 파워포인트를 속일 수 있습니다.
텍스트 상자가 많다면 아래 VBA를 이용하시면
일괄로 모든 글머리 번호 시작위치에 볼드체가 아닌 빈 유령문자(200B)를 삽입해 줍니다.
Alt+F11 누르고 삽입 > 모듈 추가한 후에 아래 코드를 붙여넣습니다.
코드 창을 닫고 원하는 텍스트 상자들을 모두 선택하고 Alt+F8로 InsertGhost 매크로를 실행시킵니다.
Sub InsertGhostCharBeforeParagraphs()
Dim shp As Shape
Dim p As TextRange2, t As TextRange2
For Each shp In ActiveWindow.Selection.ShapeRange
For Each p In shp.TextFrame2.TextRange.Paragraphs
If p.Characters(1) <> vbCr And p.Characters(1) <> ChrW(&H200B) Then
Set t = p.InsertBefore(ChrW(&H200B))
t.Font.Bold = msoFalse
End If
Next p
Next shp
End Sub
Sub RemoveGhostCharBeforeParagraphs()
Dim shp As Shape
Dim p As TextRange2
Dim c As Integer
For Each shp In ActiveWindow.Selection.ShapeRange
For Each p In shp.TextFrame2.TextRange.Paragraphs
If p.Characters(1) = ChrW(&H200B) Then
p.Characters(1).Delete
c = c + 1
End If
Next p
Next shp
If c Then MsgBox c & " ghost character(S) removed."
End Sub
InsertGhost는 글머리 기호가 있는 문단 첫글자 앞에 유령문자를 삽입해주고
RemoveGhost는 각 문단의 첫 글자가 유령문자인 경우 모두 찾아서 삭제해 줍니다.
샘플 파일 첨부합니다.
관련:
1. 지식인
2. 마이크로소프트 커뮤니티