엑셀 단어장 만들기 | 40개국 언어를 지원하는 음성변환 단어장

윈도우 음성변환 API를 이용하여 40개국 언어를 지원하는 엑셀 음성변환 단어장을 만들기 위한 필수 기능을 알아봅니다.

# VBA

작성자 :
오빠두엑셀
최종 수정일 : 2024. 10. 04. 18:13
URL 복사
메모 남기기 : (8)

엑셀 단어장 만들기 | 40개국 언어지원! - 음성변환 단어장

엑셀 음성변환 단어장 목차 바로가기
영상 강의

큰 화면으로 보기

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [퀵VBA] 엑셀 음성변환 단어장 기능 설명
    예제파일
  • ✨ 엑셀 단어장 테스트 양식 (40개언어 음성 변환 지원)
    회원자료

윈도우 언어팩 설치하기 (텍스트 음성변환)

  1. [윈도우 시작버튼] - [설정] 으로 이동하거나 단축키 Win + i 키로 윈도우 설정을 실행한 뒤, [시간 및 언어]로 이동합니다.

    윈도우 설정 시간 및 언어
    윈도우 - 설정 - 시간 및 언어로 이동합니다.
  2. PC에서 사용가능한 언어 목록을 확인한 뒤, 사용할 언어가 없을 시 [언어] - [기본 설정 언어 추가하기]로 이동합니다.

    언어 기본 설정 언어 추가
    사용가능한 언어 목록 확인 후, 기본 설정 언어 추가하기 버튼을 클릭합니다.
  3. 원하는 언어를 검색한 뒤, [텍스트 음성 변환] 체크박스만 활성화합니다. [설치] 버튼을 클릭하여 언어팩을 설치합니다.
    텍스트 음성 변환 기능 설치
    텍스트 음성 변환 박스만 활성화 한 뒤, [설치] 버튼을 클릭합니다.
  4. 언어팩 설치가 진행됩니다. (약 1~2분 정도 소요됩니다.)

    엑셀 단어장 텍스트 음성변환 설치
    언어팩 설치가 진행됩니다. (약 1~2분 정도 소요됩니다.)
  5. 언어팩 설치가 완료되었습니다.

    윈도우 언어팩 설치 완료
    언어팩 설치가 완료되었습니다.

사용가능한 음성변환 목록 출력 (GetVocList 함수)

  1. 예제파일을 실행한 뒤, [개발도구] - [Visual Basic]으로 이동하거나 단축키 Alt + F11 키로 매크로 편집기를 실행합니다.
    매크로 편집기 이동
    [개발도구] - [Visual Basic]을 클릭하여 매크로 편집기를 실행합니다.
  2. [삽입] - [모듈] 을 클릭하여 새로운 모듈을 삽입합니다.
    새로운 모듈 삽입
    [삽입] - [모듈]로 새로운 모듈을 추가합니다.
  3. 아래 명령문을 복사한 뒤 모듈 안에 붙여넣기 합니다.
    '###############################################################
    '오빠두엑셀 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
  4. 시트로 이동한 뒤, 아래 함수를 입력합니다.
    =GetVocList(True)
  5. PC에서 사용가능한 언어 목록이 메시지박스로 출력됩니다.

    엑셀 단어장 사용가능 언어
    사용가능한 언어 목록이 메시지박스로 출력됩니다.

텍스트 음성 변환 (VocSpeak 명령문)

아래 명령문을 복사한 뒤, 모듈 안에 붙여넣기 합니다.

'###############################################################
'오빠두엑셀 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

특정 단어를 원하는 언어로 음성변환하기

  1. 모듈에 새로운 명령문을 추가합니다. 아래 명령문을 복사한 뒤 모듈에 붙여넣기 합니다.
    Sub Test()
     
    VocSpeak Sheet1.Range("B3"), Sheet1.Range("C3")
    '시트 B3셀에 있는 단어를 C3셀에 적힌 언어로 음성변환합니다.
     
    End Sub
  2. 명령문의 아무 곳이나 클릭한 뒤, 매크로 편집기 상단의 재생버튼을 클릭하거나 단축키 F5키를 눌러 명령문을 실행합니다.

    음성변환 명령문 실행
    엑셀 음성변환 명령문을 실행합니다.
  3. "很高兴见到你" 라는 중국어가 음성변환되어 출력합니다. 이 기능을 응용하면 나만의 엑셀 단어장을 만들 수 있습니다. 아래 회원자료실에서 매크로 명령문이 포함된 엑셀 음성변환 단어장 파일을 무료로 다운로드 하실 수 있습니다.
  4. 파일이 잘 동작하면, 완성된 파일을 저장합니다. [파일] - [다른 이름으로 저장] 으로 이동한 뒤, 매크로 포함문서 형식(*.xlsm) 으로 파일을 저장하여 엑셀 음성변환 단어장 만들기를 마무리합니다.

    엑셀 단어장 매크로 사용 통합문서 저장
    완성된 파일을 매크로 사용 통합문서 형태로 저장합니다.
4.7 7 투표
게시글평점
8 댓글
Inline Feedbacks
모든 댓글 보기
8
0
여러분의 생각을 댓글로 남겨주세요.x