엑셀 음성 변환 목록 출력 :: GetVocList 함수 사용법

현재 PC에서 사용가능한 음성 변환 목록을 배열로 반환하는 GetVocList 함수의 사용법 및 동작원리를 알아봅니다.

홈페이지 » 엑셀 음성 변환 목록 출력 :: GetVocList 함수 사용법

엑셀 음성 변환 목록 출력 :: GetVocList 명령문 사용법 총정리

엑셀 GetVocList 명령문 목차 바로가기
요약

엑셀 GetVocList 명령문은 PC에서 사용가능한 음성 변환 목록을 출력하는 함수입니다.

명령문 구문
= GetVocList ( [메시지출력여부] )
사용된 인수 및 변수 알아보기
인수설명
메시지출력여부
[Boolean, 선택인수]
TRUE일 경우 사용가능한 음성 변환 목록을 메시지 박스로 출력합니다. 기본값은 FALSE 입니다.

예제파일 다운로드

상세 설명

엑셀 GetVocList 함수는 현재 PC에서 사용가능한 음성 변환 목록을 배열로 반환하는 함수입니다. (엑셀 음성 변환 목록 출력 함수) 윈도우 음성 변환 기능을 사용하려면 해당 언어의 언어팩이 설치되어 있어야 합니다. 윈도우는 총 40개 언어를 63개 목소리로 지원합니다. 지원되는 언어의 전체 목록은 아래 표로 준비해드렸습니다.

단어를 원하는 언어로 음성 변환하려면 VocSpeak 함수를 사용하세요.

윈도우 언어팩 설치에 대한 자세한 설명은 아래 링크를 참고하세요.

실전 사용 예제
  1. 현재 PC에서 사용가능한 음성 변환 목록 출력하기
    =GetVocList()
    ={Microsoft Heami Desktop - Korean, Microsoft Zira Desktop - English (United States), Microsoft David Desktop - English (United States)}
    '사용 가능한 음성 변환 목록을 출력합니다.
  2. 현재 PC에서 사용가능한 음성 변환 목록을 메시지박스로 출력하기
    =GetVoclist(True)

    윈도우 음성 변환 목록
    사용가능한 음성 변환 목록을 메시지박스로 출력합니다.

음성 변환 목록 출력, GetVocList 명령문 동작원리

GetVocList 명령문 전체 코드
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ GetVocList 함수
'▶ 사용 가능한 음성 변환 목록을 배열로 반홯납니다.
'▶ 인수 설명
'_____________ShowMsgBox : True일 경우 사용가능한 음성 변환 목록을 메시지박스로 출력합니다.
'###############################################################
Function GetVocList(Optional ShowMsg As Boolean = False) As Variant
 
' 변수 생성
Dim Voc As Object
Dim vaReturn As Variant
Dim v As Variant: Dim s As String
Set Voc = CreateObject("SAPI.SpVoice")
 
' 사용 가능한 음성 변환 목록 개수 넓이로 배열 생성
ReDim vaReturn(0 To Voc.GetVoices.Count - 1)
 
' 음성 이름을 배열에 추가
For i = 0 To Voc.GetVoices.Count - 1
    Set Voc.Voice = Voc.GetVoices.Item(i)
    vaReturn(i) = Voc.Voice.GetDescription
Next
 
' 메세지 출력여부 True일 경우 메세지 출력
If ShowMsg = True Then: For Each v In vaReturn: s = s & v & vbNewLine: Next: MsgBox s
 
' 결과값 반환
GetVocList = vaReturn
 
End Function
명령문 동작원리 단계별 알아보기
  1. 변수를 생성합니다.
    ' 변수 생성
    Dim Voc As Object
    Dim vaReturn As Variant
    Dim v As Variant: Dim s As String
    Set Voc = CreateObject("SAPI.SpVoice")
  2. 사용가능한 음성 변환 목록의 개수의 넓이로 배열을 생성합니다.
    ' 사용 가능한 음성 변환 목록 개수 넓이로 배열 생성
    ReDim vaReturn(0 To Voc.GetVoices.Count - 1)
  3. 가용한 음성 (언어팩) 이름을 배열에 추가합니다.
    ' 음성 이름을 배열에 추가
    For i = 0 To Voc.GetVoices.Count - 1
        Set Voc.Voice = Voc.GetVoices.Item(i)
        vaReturn(i) = Voc.Voice.GetDescription
    Next
  4. 메시지 출력여부가 True일 경우 음성이름을 메시지박스로 표시합니다.
    ' 메세지 출력여부 True일 경우 메세지 출력
    If ShowMsg = True Then: For Each v In vaReturn: s = s & v & vbNewLine: Next: MsgBox s
  5. 배열을 결과값으로 반환하고 명령문을 종료합니다.
    ' 결과값 반환
    GetVocList = vaReturn
윈도우에서 지원하는 SAPI TTS 전체 목록
언어(참고용)사용언어남성 목소리여성 목소리
아라비아어ArabicHoda
아랍어 (사우디 아라비아)Arabic (Saudi Arabia)Naayf
브라질어Brazil (pt-BR)DanielMaria
스페인어Catalan Spanish (Spain)Herena
중국어China (zh-CN)KangkangHuihui, yaoyao
체코어Czech (Czech Republic)Vit
덴마크어DanishHelle
네덜란드어DutchFrank
영어 (호주)English (Australia)JamesCatherine
영어 (캐나다)English (Canada)RichardLinda
영어 (영국)English (Great Britain)GeorgeHazel, Susan
영어 (인도)English (India)RaviHeera
영어 (아일랜드)English (Ireland)Shaun
영어 (미국)English (United States)David, MarkZira
핀란드어FinnishHeidi
플랑드르어Flemish (Belgian Dutch)Bart
프랑스어 (캐나다)French (Canada)ClaudeCaroline
프랑스어 (프랑스)French (France)PaulHortence, Julie
독일어 (독일)German (Germany)StefanHedda, Katja
독일어 (스위스)German (Switzerland)Karsten
그리스어GreekStefanos
힌디어Hindi (India)HermantKalpana
광동어(홍콩어)Hong Kong (zh-HK)DannyTracy
헝가리어 (헝가리)Hungarian (Hungary)Szabolcs
인도네시아어 (인도네시아)Indonesian (Indonesia)Andika
이탈리아 사람ItalianCosimoElsa
일본어JapaneseIchiroAyumi, Haruka
노르웨이 인NorwegianJon
폴란드어 (폴란드)Polish (Poland)AdamPaulina
포르투갈어 (포르투갈)Portuguese (Portugal)Helia
루마니아어 (루마니아)Romanian (Romania)Andrei
러시아어 (러시아)Russian (Russia)PavelIrina
슬로바키아어 (슬로바키아)Slovak (Slovakia)Filip
한국어KoreanHeami
스페인어 (스페인)Spanish (Spain)PabloHelena, Laura
스페인어 (멕시코)Spanish (Mexico)RaulSabina
스웨덴어SwedishBengt
대만어Taiwan (zh-TW)ZhiweiYating, Hanhan
태국어Thai (Thailand)Pettara
터키어TurkishTolga
현재 페이지 댓글알림 신청
알림 설정
guest
0 Comments
Inline Feedbacks
View all comments
0
여러분의 생각을 댓글로 남겨주세요.x