[엑셀]VBA를 이용해서 Text 파일 읽기 (UTF-8 파일 읽기)
VBA을 이용해서 Text 파일 (혹은 Xml등등)을 읽는 방법입니다.
보통 VBA의 FileSystem을 이용한 [Open / Close를 활용 한 방법이 있습니다.
(구글링 및 네이버를 이용해서 쉽게 찾을 수 있습니다.)
하지만 FileSystem은 ASCII 형태로 저장이 되어 일부 프로그램에서 로드할 때 깨지거나,
문제점이 발생할 수 있습니다.
(회사에서 UTF-8 형태로 모두 바꾸는 바람에 기록 방법을 바꾸어야 했어요 ㅠㅠ)
이 때에는 Stream을 이용해서 File을 읽을 수 있습니다.
'Stream의 생성
Dim stmFileControl As Stream 'Stream 인자 생성
Set stmFileControl = New Strem 'Stream 저장공간 배치
stmFileControl .Open
stmFileControl.Position = 0 '기록, 혹은 읽을 위치를 0으로 맞춘다.
stmFileControl.Charset = "UTF-8" '저장시 [UTF-8]로 읽거나 저장합니다.
'Stream에 파일 읽기
Stream.LoadFromFile("C:\Text.txt")
'C:\Text.txt에 파일을 읽겠다는 선언을 합니다.
sStr = LuaStream.ReadText()
'이전에 LoadFromFile로 선언한 C:\Text.txt에서 글자를 모두 읽어옵니다.
'Stream에서 파일로 저장
stmFileControl.SaveToFile "C:\Test.txt", adSaveCreateOverWrite
'C:\Test.txt에 저장(혹은 생성)하겠다는 것입니다.
'adSaveCreateOverWrite가 해당 옵션을 선택하는 것입니다. (다른 옵션도 있겠지만.. 확인하지 않았어요..
stmFileControl.Close
'stmFileControl을 닫습니다.
각 생성 및 소멸을 함수로 묶어서 만들면 편하게 사용할 수 있습니다. : )
--참고하세요!!--
Stream을 사용하려면
Microsoft ActiveX DataObject 2.8(이상)을 사용할 수 있어야 합니다.
VBA에서 [도구>참조] 를 눌러서 위의 라이브러리를 추가해주세요.
그냥 일반적으로 사용하는 Text형식은 아래와 같습니다.
stmFileControl.Charset = "euc-kr" '저장시 [euc-kr8]로 저장합니다.
출처: https://it205.tistory.com/32?category=340238 [얼음가득:티스토리]
'엑셀 > 엑셀 VBA' 카테고리의 다른 글
엑셀 VBA를 이용해서 다른 프로그램 실행시키기 (0) | 2022.06.30 |
---|---|
[엑셀 VBA] ASCII 코드 목록 (0) | 2022.06.30 |
[엑셀]VBA에서 Text 파일 저장하기 (UTF-8 로 저장하기) (0) | 2022.06.30 |
엑셀 VBA를 이용한 파일 존재 유무 확인 (0) | 2022.06.30 |