336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.



엑셀 VBA를 이용해 CSV를 UTF-8로 Export하기

(Office 2013 기준)


기본적으로 엑셀 시트를 CSV로 저장하게 되면 인코딩이 ANSI로 되어있습니다.


< CSV로 저장했을 때의 인코딩 >


인코딩을 바꾸려면 모메장으로 열고 인코딩을 직접 바꿔주어야 하는데


데이터가 많을 경우 시간이 걸리는 작업입니다.


VBA를 이용하여 매크로를 만들면 이런 번거러운 작업을 없앨 수 있습니다.


테스트를 위해  이전 포스팅 한 데이터(VLOOKUP 사용하기)를 이용하여 하도록 하겠습니다.


우선 개발도구 탭에 있는 Visual Basic을 클릭합니다.


(개발도구 탭이 없으신 분은 여기 눌러Step 3을 보시기 바랍니다)




그럼 다음과 같이 개발 툴이 나타납니다.




매크로를 만들기 위해서 


상단 메뉴 삽입 -> 모듈 을 클릭합니다.




그리고 다음 사이트를 들어가서 코드를 모두 복사합니다.


그리고 붙여넣기를 해줍니다.


링크 클릭




이제 다시 엑셀 파일로 돌아옵니다.


버튼을 하나 만들어서 매크로가 실행되게끔 해야합니다.


개발도구에서 삽입을 누르고, 단추(버튼)을 클릭합니다.


그리고 아무 셀쪽에 가서 드래그를 하게 되면




이런 창이 나타나게 됩니다.


WriteCSV가 보이는데, 이게 아깝 복사/붙여넣기 한 매크로 입니다.


선택하시고, 매크로 위치는.. 그냥 현재 통합 문서로 하도록 하겠습니다.


그리고 확인.




창이 닫아지면 아까 드래그 해서 만든 버튼이 저렇게 보여집니다.




단추를 딱 클릭을 하면 다른 이름으로 저장 창이 나타나는데,


파일 형식이 바로 CSV로 되어있습니다. 


아무 이름이나 하고 저장을 할께요.




저장이 완료되면 다음처러 "다 되었다"라고 창이 하나 뜹니다.




이제 확인만 하면 됩니다.


저장된 파일을 메모장으로 열고, 


다른 이름으로 저장을 눌러보면 인코딩을 볼수 있습니다.


UTF-8로 되어있습니다.  잘 되네요.



관심 있는 분들은 VBA 검색하셔서 공부해보세요.


자동화 해두면 나중에 아주 많이 편리하니 도움되실 꺼에요.



** 추가 **


해당 링크로 가서 받은 코드에 약간의(?) 문제가 있습니다.


최대 10라인만 되도록 되어있더라구요.


코드 조금 수정하겠습니다.


아래 빨간색으로 된 부분만 수정/추가해 주시면 되겠습니다.


(다른 방법도 있겠지만, 간단히 처리했습니다.)


.....

For r = 1 To 10000

s = "" 

c = 1 

 If IsEmpty(wkb.Cells(r, c).Value) Then 

 Exit For 

 End If 

 While Not IsEmpty(wkb.Cells(r, c).Value) 

 s = s & wkb.Cells(r, c).Value & ","

 c = c + 1 

 Wend 

 BinaryStream.WriteText s, 1

 Next r

....





'게임 프로그래밍 > 엑셀' 카테고리의 다른 글

[엑셀] 램덤 함수(RAND, RANDBETWEEN)  (0) 2016.05.31
[엑셀] 중복값 제거하기.  (0) 2016.05.31
[엑셀]VLOOKUP 사용하기  (0) 2016.05.22
[엑셀]엑셀 드롭다운 만들기  (0) 2016.05.22
[엑셀]이름 정의  (2) 2016.05.22

+ Recent posts