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

엑셀 메모장 CSV 불러오기 :: Read_TextFile 함수

엑셀 셀 안으로 메모장 및 CSV 파일을 바로 불러오는 Read_TextFile 함수의 사용법 및 동작원리를 알아봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2021. 05. 10. 01:59
URL 복사
메모 남기기 : (7)

엑셀 메모장, CSV 불러오기 :: Read_TextFile 명령문 사용법 총정리

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

엑셀 Read_TextFile 함수는 파일 경로의 메모장, CSV 파일을 읽어오는 사용자 지정 함수입니다.

명령문 구문
= Read_TextFile ( 파일경로, [인코딩형식] )
사용된 인수 및 변수 알아보기
인수 설명
파일경로
[String]
메모장 또는 CSV 파일을 불러올 파일 경로입니다. 폴더경로 및 확장자를 모두 포함한 전체 경로를 입력합니다. 만약 파일경로가 올바르지 않거나 존재하지 않는 파일일 경우 결과값으로 #Value! 오류를 반환합니다.
인코딩형식
[String, 선택인수]
인코딩 형식입니다. 기본값은 UTF-8 입니다. 필요에 따라 Unicode, ANSI 등의 인코딩 형식을 지정할 수 있습니다.

예제파일 다운로드

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

  • [엑셀VBA함수] Read_TextFile 함수 - 예제파일
    예제파일

상세 설명

엑셀 Read_TextFile 함수는 파일 경로의 메모장 또는 CSV 파일을 읽어오는 엑셀 사용자 지정 함수입니다. 파일 경로는 폴더경로와 확장자를 포함한 전체 경로를 입력합니다. 대부분의 경우 UTF-8 형식으로 값을 올바르게 받아오지만, 일부 파일은 인코딩 형식에 따라 "꿹뛣쀍" 등으로 문자가 깨져서 출력될 수 있습니다. 그럴 경우 파일의 인코딩 형식을 확인 후 인코딩 값을 변경합니다.

엑셀 메모장 CSV 불러오기 예제
엑셀 메모장 불러오기 함수 사용 예제

메모장 또는 CSV 파일의 인코딩 형식을 확인하는 방법은 간단합니다. 파일을 메모장으로 실행 후, [파일] - [다른 이름으로 저장]을 선택합니다. 이후 다른 이름으로 저장 대화상자의 오른쪽 아래에서 현재 실행중인 파일의 인코딩 형식을 확인할 수 있습니다.

메모장 CSV 인코딩 확인
메모장 및 CSV 파일 인코딩 형식 확인 방법

현재 실행중인 통합문서의 폴더 경로를 받아오는 함수 공식과 동작원리는 아래 관련 포스트에서 자세히 설명해드렸습니다.

실전 사용 예제
  1. 현재 실행중인 파일과 동일한 경로의 테스트.txt 메모장 내용 불러오기
    =Read_TextFile(LEFT(CELL("filename",A1),FIND("\[",CELL("filename",A1)))&"테스트.txt")
    =Read_TextFile("C:\폴더경로\테스트.txt")
    'C:\폴더경로\테스트.txt 메모장 파일 내용을 출력합니다.
  2. 특정 경로의 CSV 파일 내용 불러오기
    =Read_TextFile("C:\Temp\테스트.csv")
    'C:\Temp\테스트.csv CSV 파일 내용을 출력합니다.

엑셀 메모장, CSV 불러오기, Read_TextFile 명령문 동작원리

Read_TextFile 명령문 전체 코드
Function Read_TextFile(sPath As String, Optional Charset As String = "UTF-8") As String
 
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'■ Read_TextFile 함수
'■ 텍스트 또는 CSV 파일을 읽어옵니다.
'■ 인수 설명
'_____________sPath          : 텍스트 또는 CSV 파일의 파일경로입니다.
'_____________Charset        : [선택인수] 인코딩형식입니다. 기본값은 UTF-8 입니다. Unicode, ANSI 등으로 설정할 수 있습니다.
'■ 사용 예제
's = Read_TextFile("C:\Temp\Test.txt")
'##############################################################
 
On Error GoTo EH:
 
Dim objADO As Object
Set objADO = CreateObject("ADODB.Stream")
 
With objADO
    .Open
    .Charset = Charset
    .LoadFromFile sPath
    Read_TextFile = .ReadText
End With
 
Exit Function
 
EH:
Read_TextFile = CvErr(xlValue)
 
End Function
명령문 동작원리 단계별 알아보기
  1. 메모장, CSV 파일을 읽어오기 위해 ADODB 개체를 생성합니다.
    Dim objADO As Object
    Set objADO = CreateObject("ADODB.Stream")
  2. ADO개체로 파일을 읽어옵니다.
    With objADO
        .Open
        .Charset = Charset
        .LoadFromFile sPath
        Read_TextFile = .ReadText
    End With
  3. 파일이 없거나 잘못된 경로로 인해 오류가 발생할 경우 Value 오류를 반환합니다.
    EH:
    Read_TextFile = CVErr(xlValue)
댓글 7
5 (6개 평가)
삐가삐까츅
삐가삐까츅 2021.05.10 02:28
새로운 함수네요~~!! 와우 잘 동작합니다 ㅎㅎ 감사히 잘 쓰겠습니다
별바람흙
별바람흙 2021.05.21 10:59
으와... 이런 곳이 다 있네요. 감사합니다.
greenm****
greenm**** 2021.07.10 14:42
이렇게 다양한 기능이 있다니...
헤이민
헤이민 2022.01.25 09:46
텍스트 파일이 ANSI 코딩일 경우 엑셀 함수를 어디서 변경 해야하나요? Value 오류가 뜹니다!
오빠두엑셀
오빠두엑셀 작성자 2022.01.25 21:15
헤이민님 안녕하세요.
아래 코드를 사용하면 ANSI를 UTF-8 형식으로 변환할 수 있습니다.
https://officetricks.com/vba-to-change-file-encoding-ansi-to-utf8-text-to-unicode/
코드를 적절한 위치에 추가해서 한번 수정해보세요 :)
Sub convertTxttoUTF(sInFilePath As String, sOutFilePath As String)
Dim objFS As Object
Dim iFile As Double
Dim sFileData As String

'Init
iFile = FreeFile
Open sInFilePath For Input As #iFile
sFileData = Input$(LOF(iFile), iFile)
sFileData = sFileData & vbCrLf
Close iFile

'Open & Write
Set objFS = CreateObject("ADODB.Stream")
objFS.Charset = "utf-8"
objFS.Open
objFS.WriteText sFileData

'Save & Close
objFS.SaveToFile sOutFilePath, 2 '2: Create Or Update
objFS.Close

'Completed
Application.StatusBar = "Completed"
End Sub
호시소라
호시소라 2023.05.09 10:35
이 게시글 관련 강의를 보고싶은데.. 어디에서 볼 수 있을까요?ㅠㅠ
강민준🤗
강민준🤗 2024.08.11 12:57
좋은 자료 감사합니다.🙇‍♂️