이 페이지에서
구문
= Read_TextFile ( 파일경로, [인코딩형식] )
인수구분
형식 설명
파일경로
필수
String
메모장 또는 CSV 파일을 불러올 파일 경로입니다. 폴더경로 및 확장자를 모두 포함한 전체 경로를 입력합니다.
파일경로가 올바르지 않거나 존재하지 않는 파일일 경우 결과값으로 #VALUE! 오류를 반환합니다.
인코딩형식
선택
String
파일을 읽어올 인코딩 형식입니다. 기본값은 UTF-8 입니다.
필요에 따라 Unicode, ANSI 등의 인코딩 형식을 지정할 수 있습니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요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
활용 예제
현재 실행중인 파일과 같은 폴더의 메모장 불러오기
= Read_TextFile ( LEFT(CELL("filename",A1),FIND("\[",CELL("filename",A1)))&"테스트.txt" )
= Read_TextFile ( "C:\폴더경로\테스트.txt" )
'// C:\폴더경로\테스트.txt 메모장 파일 내용을 출력합니다.
특정 경로의 CSV 파일 내용 불러오기
= Read_TextFile ( "C:\Temp\테스트.csv" )
'// C:\Temp\테스트.csv CSV 파일 내용을 출력합니다.
안내사항
인코딩 형식이 파일과 맞지 않으면 글자가 깨져서 출력됩니다.
파일을 메모장으로 실행한 뒤 [파일] - [다른 이름으로 저장] 대화상자 오른쪽 아래에서 파일의 인코딩 형식을 확인해 지정합니다.
아래 코드를 사용하면 ANSI를 UTF-8 형식으로 변환할 수 있습니다.
https://officetricks.com/vba-to-change-file-encoding-ansi-to-utf8-text-to-unicode/
코드를 적절한 위치에 추가해서 한번 수정해보세요 :)