'Microsoft ActiveX Data Objects 6.1 Library 참조 필요
Private Sub EuckrToUtf8NoBOM(a_sFrom, a_sTo)
Dim streamRead As New ADODB.Stream '// 읽을 데이터
Dim streamWrite As New ADODB.Stream '// 작성할 데이터
Dim sText As Variant '// 파일 데이터
'// 파일데이터
streamRead.Type = adTypeText
streamRead.Charset = "euc-kr" '여기에 한글형을 입력한다.
streamRead.Open
Call streamRead.LoadFromFile(a_sFrom)
'// 개행코드 CRLF를 LF로 변환
sText = streamRead.ReadText
sText = Replace(sText, vbCrLf, vbLf)
'// 파일쓰기
streamWrite.Type = adTypeText
streamWrite.Charset = "UTF-8"
streamWrite.Open
'// euc-kr 을 utf-8 데이터로 쓴다.
Call streamWrite.WriteText(sText)
'// 바이너리 모드로 쓴 데이터 시작 위치를 BOM분의 3바이트씩 민다.
streamWrite.Position = 0
streamWrite.Type = adTypeBinary
streamWrite.Position = 3
'// 3바이트 민 상태에서 데이터를 취득
sText = streamWrite.Read
'// 3바이트 민 위치를 원래대로 돌린다.
streamWrite.Position = 0
'// BOM이 제거된 데이터를 처음부터 다시 쓴다.
Call streamWrite.Write(sText)
'// 현시점의 말미를 끝으로, 직전에 쓴 3바이트를 데이터 대상외로 한다.
streamWrite.SetEOS
'// 저장
Call streamWrite.SaveToFile(a_sTo, adSaveCreateOverWrite)
'// 파일 닫기
streamRead.Close
streamWrite.Close
End Sub
2019년 9월 11일 수요일
EXCEL VBA로 euc-kr -> utf-8로 변경하는 코드
EXCEL VBA로 텍스트 쓸 때 이미 써진 파일을 euc-kr -> utf-8 로 수정하는 코드
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기