엑셀 시트가 많아지다 보면 필요불가결하게 정렬을 해야할 필요가 있다.
손으로 일일이 정렬을 하자나 금쪽 같은 시간이 아까운 것보다.. 귀차니즘의 발로로 한숨만 나온다. 그냥 매크로를 하나 만드는것이 더 나을 듯하여 간단한 버블소트 알고리즘을 동원해 시트이름을 정렬하는 매크로를 하나 작성하여 보았다.

다음은 버블소트 알고리즘을 이용한 시트소팅 기본서브루틴이다. 매개변수로는 시트를 소팅해야할 워크북과 소팅 방향을 받아 온다. 버블소트의 알고리즘은 매우 간단하지만 혹시 모르시는 분은 본 사이트 알고리즘 부분을 참조하시면 될 듯......



위의 코드를 직접 매크로에서 실행하기 위해서는 매개변수가 없는 서브루틴이 필요하다. 그래서 다음과 같은 두 가지 매크로 코드를 추가로 작성하였다.



뭐 이름만 봐도 뭘하는지 알수있을것이다. 최종매크로의 경우 이름을 한글로 달아놓으니.. 역시 쓰기가 좋다.

함수의 한글 이름은 원래 속도나 호환성 문제 등으로 잘 사용하지 않지만 사용자가 직접 호출해야하는 메인 매크로의 경우는 이렇게 한글로 이름을 붙여 두는 것이 역시 활용에 도움이되는 것 같다. 물론 내부적으로 사용되는 서브루틴과 함수들은 모두 영어로 작성한다면 속도나 호환성 문제도 별로 걱정될 일이 없을 듯하다.

훔.. 이 프로그램을 통해 시트를 정렬하는 속도는.. 굉장히 느리다.. 아마 한 200개 정도의 시트를 생성하여 정렬해 본다면 시트가 버블처럼 앞으로 이동하는 것이 눈에 보일 것이며, 대략 1-5분 정도의 시간이 소요될 것이다. 하지만 정렬이 되는 과정을 눈으로 지켜볼 수 있다는 점에서 재밌기도 하다. 하지만 그것이 따분하신 분은 Application.ScreenUpdating 옵션을 통해 정렬과정을 지켜보는 재미를 포기하신다면 조금 빨리 수행하실 수 있으실 듯....

생각보다 엑셀이 워크시트를 이동하는 데 시간이 많이 걸리기 때문에 사실 시트이름을 배열로 받아서 배열을 정렬한 후 배열의 순서대로 시트를 다시 재배치하는 것이 훨씬 빠르고 편리하다. 좀 더 빠른 시트 정렬을 원하시는 분은 도전해 봄직도....
필자는 대충 소팅하는 거 구경하는 재미로.. 여기서 일단은 끝을 내려고 한다. -_-;;;

만약 담에 빨리할 필요가 있다면 좀 수정하여 게시하게 되겠지만..
크리에이티브 커먼즈 라이센스
Creative Commons License
2008/08/01 15:50 2008/08/01 15:50
BLOG main image
새미 기픈 믈은 가마래 아니그츨씌.. by

카테고리

전체 (74)
궁시렁 (15)
(3)
(37)
GIS (7)
GeoTagging (8)
테터 & 텍스트큐브 (0)
바로 그때.. (3)
검색/링크 (0)

최근에 올라온 글

Total : 386735
Today : 101 Yesterday : 121
Download MathPlayer글 내용중의 수식을 보시려면 ^^
Creative Commons License

이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
자신만의 홈페이지를 만들어 올릴 공간을 갖고 싶다면,
한달에 오백원만 투자하세요