엑셀 매크로로 만들어진 내용을 다른 프로그램에서 사용하기 위해 텍스트 파일로 변환할 경우가 있었다.
이 과정을 하면서 좀 더 쉽게 코딩할 방법이 없을까 생각하고 찾아보니
기존방식은 Object상위 클래스에서 기능을(Createtextfile) 사용해 한줄 한줄 넣었으면
엑셀 함수(ActiveWorkbook)를 사용해 코딩수를 크게 줄일 수 있었다. (4줄 끝!)
즉 내용물이 있는 시트를 새로운 텍스트 파일형식으로 변환 해준다고 본다.
그런데, 이 방식을 쓸 때 문제가 발생했고 그 방법을 해결하려면 FileFormat를 바꿔줘야 한다는걸 알았다.
Object과 ActiveWorkbook 방식이 서로 접근하는 방법이 다르지만, 파일 형식을(.txt , .log등) 변환해주는것은 같다.
여기서는 ActiveWorkbook 방식으로 저장하는 방법을 알아보자.
간단하다.
1. ActiveWorkbook기능으로 시트를 선택한다.
2. 시트를 복사한다.
3. 복사될 지점을 지정하고 저장한다.
4. ActiveWorkbook기능을 끊다.
이게 끝이다.
ActiveWorkbook.Sheets(x).Select (x : 시트 넘버)
ActiveSheet.Copy
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & "파일제목.형식", FileFormat:=xlText
ActiveWorkbook.Close
파란 줄이 중요한데 Path 를 주면 현재 폴더명에 파일을 저장하는 거고 다른곳에 저장하려면 파일 만들 경로를 직접
입력해야 한다.
FileFormat 여기서 내가 하고 싶은 말이 나온다.
FileFormat 의 종류가 xlText , xlTextPrinter등이 있는데
ActiveWorkbook를 사용하면서 시트안에 반점' , ' 있으면
xlTextPrinter 형식으로 실행해야 문제 없이 나온다.
엑셀 매크로를 만들면서 필요한 기능이 있으면, 검색해서 빠르게 찾을 수 있는 이유가
범용적으로 쓰이고 있는 덕분이라고 생각한다.
저도 이런식으로라도 알릴 수 있는게 도움이 됬음 합니다.
'프로그래밍(Programing) > 엑셀매크로_vba(Excel-Macro)' 카테고리의 다른 글
Option explicit 묵시적 변수 명시적 변수 (0) | 2021.07.26 |
---|---|
원하는 위치에 파일 저장하기 (수동적으로 ) (0) | 2021.07.12 |
선택한 셀의 행,열 위치 저장하기2 (0) | 2021.05.30 |
선택한 셀의 행,열 위치 저장하기1 (0) | 2021.05.29 |
정렬- 오름내림 차순(엑셀함수사용과 아닌것) (0) | 2021.05.23 |