[엑셀]VBA에서 Text 파일 저장하기 (UTF-8 로 저장하기)
학습/엑셀 VBA2011. 4. 19. 20:08
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
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에 기록
stmFileControl.WriteText("기록값을 String으로 넣습니다." & sString & " &로 묶어도 되요")
'Stream에서 파일로 저장
stmFileControl.SaveToFile "C:\Test.txt", adSaveCreateOverWrite
'C:\Test.txt에 저장(혹은 생성)하겠다는 것입니다.
'adSaveCreateOverWrite가 해당 옵션을 선택하는 것입니다. (다른 옵션도 있겠지만.. 확인하지 않았어요..
stmFileControl.Close
'stmFileControl을 닫습니다.
각 생성 및 소멸을 함수로 묶어서 만들면 편하게 사용할 수 있습니다. : )
--참고하세요!!--
Stream을 사용하려면
Microsoft ActiveX DataObject 2.8(이상)을 사용할 수 있어야 합니다.
VBA에서 [도구>참조] 를 눌러서 위의 라이브러리를 추가해주세요.
--2011년 5월 추가 내용
그냥 일반적으로 사용하는 Text형식은 아래와 같다.
stmFileControl.Charset = "euc-kr" '저장시 [euc-kr8]로 저장합니다.
'학습 > 엑셀 VBA' 카테고리의 다른 글
[엑셀VBA] 디렉토리에서 파일 이름 리스트 가져오기! (2) | 2011.05.04 |
---|---|
Call과 ByVal (1) | 2011.04.20 |
엑셀 값만 복사하기! (VBA을 이용한 복사영역 조절) (1) | 2011.03.22 |
[엑셀]10억을 1로 표시하는 방법, 천을 1로 표시하는 방법 (0) | 2011.03.22 |
VBA에서 엑셀 함수 이용하기. (0) | 2011.03.22 |
댓글()