엑셀 메모장 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)
5 6 투표
게시글평점
7 댓글
Inline Feedbacks
모든 댓글 보기
7
0
여러분의 생각을 댓글로 남겨주세요.x