오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
퀵VBA 강의

엑셀 음성변환 단어장 만들기

오빠두엑셀 by 오빠두엑셀
  • 학습시간 6분
  • 난이도 중급
  • 작성일 2020.09.07

윈도우 음성변환 API (SAPI)를 활용한 40개국 언어를 지원하는 단어장 만들기!

이 강의에서는 윈도우 음성변환 API인 SAPI를 호출하는 사용자 정의 함수 GetVocList와 VocSpeak를 작성하여, 엑셀 시트에 입력한 단어를 40개국 언어로 즉시 발음시키는 음성변환 단어장을 만드는 방법을 다룹니다. 언어팩 설치, 가용 음성 목록 조회, 매크로 실행 단계를 순서대로 정리해 외국어 학습용 단어장을 직접 구성할 수 있도록 안내합니다.

엑셀 음성변환 단어장 만들기
DOWNLOADS

실습자료를 준비했어요

수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇

윈도우 언어팩 설치하기

  1. [윈도우 시작버튼] - [설정]으로 이동하거나 단축키 Win + i를 눌러 윈도우 설정을 실행한 뒤 [시간 및 언어] 메뉴로 이동합니다.윈도우 설정 시간 및 언어
  2. PC에서 사용 가능한 언어 목록을 확인합니다. 사용할 언어가 없을 경우 [언어] - [기본 설정 언어 추가하기] 버튼을 클릭하여 언어 추가 화면으로 이동합니다.언어 기본 설정 언어 추가
  3. 설치할 언어를 검색한 뒤 [텍스트 음성 변환] 체크박스만 활성화합니다. 이후 [설치] 버튼을 클릭하여 언어팩을 설치합니다.
    텍스트 음성 변환 기능 설치
  4. 언어팩 설치가 진행됩니다. 설치는 통상 1~2분 정도 소요됩니다.엑셀 단어장 텍스트 음성변환 설치
  5. 설치가 끝나면 언어팩 준비가 완료됩니다.윈도우 언어팩 설치 완료

현재 PC에서 사용가능한 음성 엔진 확인하기

  1. 예제파일을 실행한 뒤 [개발도구] - [Visual Basic]을 클릭하거나 단축키 Alt + F11로 매크로 편집기를 실행합니다.
    매크로 편집기 이동
  2. 편집기 메뉴에서 [삽입] - [모듈]을 클릭하여 새 모듈을 추가합니다.
    새로운 모듈 삽입
  3. 아래 명령문을 복사한 뒤 새 모듈 안에 붙여넣기합니다. 이 함수는 현재 PC에서 사용 가능한 음성 엔진 목록을 배열로 반환합니다.
    '###############################################################
    '오빠두엑셀 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)으로 저장하여 엑셀 음성변환 단어장 만들기를 마무리합니다.엑셀 단어장 매크로 사용 통합문서 저장
댓글 8
4.7 (7개 평가)
아인
아인 2020.09.12 16:56
멋집니다^^
Hwanni
Hwanni 2021.02.17 07:36

외국어 단어 공부와 정리에 크게 도움이 될 거 같습니다. 감사 ^^

임짱
임짱 2022.01.06 03:49
멋진 내용입니다.
짧은데,, 유용한,,, 내용이예요~~
제로큐
제로큐 2022.09.11 11:37
엑셀 정말 대단합니다 어디까지 할 수 있을까요?
강의를 들어갈수록 호기심이 점점 늘어나고 있습니다.
하지만 갈길이 머네요
이한나
이한나 2023.03.28 09:28
대박~ 찾고 있던 단어장입니다. 감사합니다.
김은하
김은하 2023.12.18 15:02
하나의 시트안에서 동시 두개 언어의 재생이 가능할까요??
영어-뜻 이렇게 자동 재생 되도록이요.
설명주신 매크로로는 영어 or 뜻 만 가능한걸로 보여서요.
오빠두엑셀
오빠두엑셀 작성자 2023.12.20 17:25
안녕하세요.
2개 언어도 재생 가능합니다.
다만 2개 언어를 재생하시려면, 제공해드린 매크로 코드를 직접 수정해서 사용하셔야만 합니다. :) 감사합니다.
강민준🤗
강민준🤗 2024.08.08 20:10
좋은 강의 감사합니다🙇‍♂️