한글 파워포인트에서 일본어를 입력했을 때
다른 일본어 폰트로 변경이 안되는 사례가 발견되었습니다.
일단 내부적인 원인 파악을 위해서
현재 선택된 텍스트에 적용된 여러가지 폰트와 LanguageID를 알아보려면
아래와 같은 코드를 이용할 수 있습니다.
Sub test()
Dim shp As Shape
Dim tr As TextRange
Set shp = ActiveWindow.Selection.ShapeRange(1)
'Set tr = shp.TextFrame.TextRange.Characters(2)
Set tr = ActiveWindow.Selection.TextRange.Characters(1)
Debug.Print "Text: ["; tr.Text; "]"
Debug.Print "Name: "; tr.Font.Name
Debug.Print "NameAscii: "; tr.Font.NameAscii
Debug.Print "NameComplexScript: "; tr.Font.NameComplexScript
Debug.Print "NameFarEast: "; tr.Font.NameFarEast
Debug.Print "NameOther: "; tr.Font.NameOther
Debug.Print "LangID: "; tr.LanguageID '1041:Jap, 1042:Kor, 1033:Eng
End Sub
위 코드를 이용해서 테스트한 결과는 아래와 같습니다.
주황색 화살표의 글자는 기존에 한글 텍스트를 지우고 일본어를 직접 입력하였거나
Ctrl-Alt-V 선택하여 붙여넣기> 일반 텍스트로 붙여넣을 경우
해당 텍스트의 LangeuageID가 원래대로 한글(1042)로 유지가 됩니다.
그러면 한글문자코드로 여겨져서
일본어 폰트로는 변경이 되지 않습니다.
오히려 일본어를 지원하는 다른 한글 폰트로는 변경이 됩니다.
(이 경우에도 일본어, 한국어를 모두 지원하는 구글 Noto Sans 같은 글로벌(?) 다국적 폰트로는 변경이 가능합니다.)
이 경우 파란색 화살표 글자처럼 일본어 텍스트를 Ctrl-V로 붙여넣거나
파일> 옵션> 언어에서 오피스 편집언어를 일본어를 기본으로 바꾼 다음에 편집을 해야겠습니다.
아니면 아래와 같은 VBA코드로 LanguageID를 강제로 일본어로 바꿔줄 수 있습니다.
Sub ChangeLangID()
With ActiveWindow.Selection.ShapeRange.TextFrame.TextRange
.LanguageID = msoLanguageIDJapanese
'Debug.Print .LanguageID '1041:Jap, 1042:Kor, 1033:Eng
End With
End Sub
일본어 텍스트상자를 모두 선택하고 위 매크로를 실행하면 일본어(1041)로 LanguageID를 바꿔줍니다.
이제 다른 일본어 폰트로 바꿀 수 있습니다.
(반대로 한글 텍스트상자를 일본어ID로 바꾸어 버리면 한글폰트가 적용이 잘 안되게 됨을 유의하세요.)
아래 테스트 파일 참고하세요.
'PPT+VBA' 카테고리의 다른 글
슬라이드쇼 2개를 연동해서 실행 (0) | 2022.04.20 |
---|---|
차트를 완전한 자유형 도형(FreeForm)으로 변환 (0) | 2022.03.18 |
특정폰트가 사용된 개체(도형) 찾기 (0) | 2022.03.10 |
원형차트 데이터라벨을 원의 중심을 향하도록 회전 (0) | 2022.02.05 |
모눈 눈금 만들기 - 아래한글 또는 VBA 이용 (0) | 2022.01.20 |
다른 슬라이드를 붙여 넣을 때 색상이 달라지는 이유 (0) | 2022.01.07 |
타이머 회전 애니메이션 만들기 (0) | 2022.01.06 |
인쇄용 종이 크기와 파워포인트 슬라이드 크기 비교 (0) | 2021.12.30 |
최근댓글