https://cafe.naver.com/excelmaster/161554 에 올라온 질문입니다.
UTF-8 형식의 텍스트파일을 불러오는데 인터넷에 있는 코드로는 한글이 깨져서 이를 해결하고자 하는 질문입니다.
저 또한 인터넷으로 검색을 해보니
ADODB 개체를 생성하여 UTF-8 텍스틀 불러오는 것이 대부분의 답변이었습니다.
텍스트파일은 질문자의 업무와 관련된 것으로 판단되어 첨부에는 넣지 않았습니다.
Option Explicit Sub Macro() Dim strFilter As String Dim strFile As String Dim i As Integer Dim v, tmp '기존자료 삭제, 변수설정 및 텍스트파일 불러오기 Range("A1").CurrentRegion.Clear ChDir ThisWorkbook.Path strFilter = "텍스트파일 (*.txt), *.txt" strFile = Application.GetOpenFilename(FileFilter:=strFilter, Title:="파일 선택", MultiSelect:=False) If strFile = "False" Then Exit Sub '파일선택 취소하면 매크로 종료 v = Split(TextStrimRead(strFile), vbLf) '텍스트파일을 엔터키 기준으로 나눕니다. '"|"기준으로 다시 나누어 셀에 출력합니다. For i = 0 To UBound(v) tmp = Split(v(i), "|") Range("A1").Offset(i).Resize(, UBound(tmp)) = tmp Next Range("A1").CurrentRegion.EntireColumn.AutoFit '열너비 자동 맞춤 End Sub Function TextStrimRead(strPathName As String) As String 'UTF-8 형식의 텍스트파일을 불러오는 사용자정의 함수입니다. Dim objStream As Object Set objStream = CreateObject("ADODB.Stream") With objStream .Open .Type = 2 'adTypeText .Charset = "UTF-8" .LoadFromFile strPathName TextStrimRead = .ReadText End With Set objStream = Nothing End Function | cs |
'VB(A)' 카테고리의 다른 글
도형 이름을 활용하여 도형 클릭시 해당 셀로 이동하기 (0) | 2019.04.01 |
---|---|
파일 오픈 여부 판단하기 (0) | 2019.03.20 |
[정규식] 일정한 패턴의 숫자만 가져오기 (0) | 2019.03.18 |
공급업체별 제품명 출력하기 (2) | 2019.03.17 |
한 셀에서 중복제거후 정렬 (0) | 2019.03.17 |