퀵VBA 강의 - 11강
엑셀 단어장 만들기 | 40개국 언어를 지원하는 음성변환 단어장
윈도우 음성변환 API를 이용하여 40개국 언어를 지원하는 엑셀 음성변환 단어장을 만들기 위한 필수 기능을 알아봅니다.
'############################################################### '오빠두엑셀 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
'############################################################### '오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com) '▶ VocSpeak 함수 '▶ 단어를 특정 언어로 읽어주는 텍스트 음성 변환 함수입니다. '▶ 인수 설명 '_____________Voca : 음성 변환 할 텍스트입니다. '_____________Language : 텍스트를 읽을 대상 언어입니다. 사용중인 PC에 해당 언어팩이 설치되어 있어야 합니다. '############################################################### Sub VocSpeak(Voca As Variant, Language As String) ' 변수 생성 Dim Voc As Object Set Voc = CreateObject("SAPI.SpVoice") ' 가용한 음성 변환 목록을 하나씩 돌아가며 사용 언어와 일치하는 항목이 있는지 확인 For i = 0 To Voc.GetVoices.Count - 1 Set Voc.Voice = Voc.GetVoices.Item(i) If InStr(1, Voc.Voice.GetDescription, Language) Then GoTo Speak Next '일치하는 항목이 없을 경우 안내메시지 띄우고 함수 종료 MsgBox "음성 변환 할 언어가 PC에 설치되어 있지 않습니다.", vbInformation, "오빠두엑셀 - 오류안내" Exit Sub ' 가용한 음성 변환 항목이 있을 시 음성 변환 후 명령문을 종료합니다. Speak: Voc.Speak Voca End Sub