이번 편에서는 엑셀 매크로 프로그램을 원하는대로 수정하고 변경할 수 있는 방법에 대해 자세히 알아보겠습니다. 이 글을 통해 매크로 프로그램을 어떻게 수정하고 개선할 수 있는지 쉽게 이해하실 수 있습니다.
단순 반복작업 자동화: 엑셀 매크로 활용 방법과 팁 #7/8 (원하는데로 소스 바꿔 사용하기)
내가 바라는 것은 이 글을 읽는 분들이 프로그래밍에 대한 개념과 사용법을 이해하고 직접 업무에 적용할 수 있는 것입니다. 특히 엑셀 매크로를 활용하여 단순 반복적인 업무를 자동화 할 수 있기를
진심으로 바라는 마음에서 가능한 상세히 설명하려고 노력하였습니다.
조금 어렵게 느껴질 수도 있지만 이렇게 시작한 김에 우리 조금만 더 견뎌 봅시다.
이번 주제는 바로 앞에서도 잠깐 언급했던 창의성에 대한 내용입니다. 현실 세계에서 하나의 문제를 여러 사람이 각각 풀어보면 하나의 답이 아닌 여러가지의 답이 나옵니다. 사람마다 생각과 적용하는 방식이
틀리기 때문입니다.
여기서 우리는 맞다 틀리다의 개념이 아닌 다르다는 것을 인정해야 합니다. 다른 사람이 만들어 놓은 프로그래밍 소스를 볼 때도 왜 이건 이렇게 했을까 하는 호기심을 가지고 이해하고 내 것으로 만들려고
노력해야지, 비판적인 생각으로 내가 너의 소스가 잘 못 됐다는 것을 밝히고 말겠어 하는 생각을 해서는 안됩니다.
다른 사람이 만들어 놓은 소스를 사용할 때는 감사한 마음으로 “복 받으실 겁니다.” 하고 속으로 생각했으면 합니다. (실제 나는 그렇게 합니다.)
목차
1. 이전 편에서 사용했던 소스
2. 필요에 따라 수정한 소스
이전 편에서 사용했던 소스
이 시리즈의 첫편에서 사용했던 아래 코드를 다시 한번 보도록 하겠습니다.
엑셀 매크로 프로그래밍으로 작성해서 글의 처음부터 여기까지 집중해서 읽었던 분들은 이 코드가 상당히 친숙해져 있을 것입니다. 조금씩 바꾸어 사용하긴 했지만 여러 번 나왔으니까.
이 코드를 For문을 사용해서 바꿀 수 있을까요? For를 사용하려면 데이터가 있는 마지막 행을 알아야 하는데 어떻게 해야 할까요? 다행이 엑셀은 그 방법을 알고 있습니다. 아래 코드를 사용하면
됩니다.
lastrow = Cells(Rows.Count, 1).End(xlUp).Row ‘첫번째 열의 1행을 기준으로 마지막행 찾기
이 코드는 자주 사용하기 때문에 외워서 사용하고 있지만 대부분 구글링을 통해 필요한 코드를 얻고 있습니다. 엑셀 매크로에 대한 유용한 코드들이 정말 많으니 평소에도 구글링을 통해 찾는 습관을 들이는
것이 좋습니다.
필요에 따라 수정한 소스
자 이제 위의 코드를 For 를 사용하여 바꿀 수 있는 모든 준비는 끝났습니다. 너무 거창한가요? 아닙니다. 이 단원의 제목처럼 내가 원하는 데로 소스를 수정할 수 있는 준비가 되었기
때문힙니다.
For문을 사용한 코드는 아래와 같습니다.
Do while과 For문을 사용한 코드를 비교하면서 각각 어떤 장점과 단점이 있는지 생각해 보셨으면 합니다. 그래야 실제 프로그래밍시에도 최적의 방법을 찾을 수 있기 때문입니다.
이 코드에는 개선해야 할 부분이 있는데 여러분이 찾아서 바꿔 보는 것도 좋을 것 같습니다. (힌트를 드리자면 프로그래밍을 할 때 반복이나 비교연산은 적을수록 좋습니다.)
여기까지 읽으면서 이 단원에서 말하고자 하는 것을 눈치 채셨는지 모르겠습니다. 내가 원하는 데로 소스를 바꾸고 사용할 수 있다는 문제의식과 창의성에 대한 내용이었습니다.
위의 소스를 봐도 사용한 것은 대입연산과 For, If가 전부입니다. 그런데도 사용자가 많은 시간을 소비해야 하던 수작업을 단지 몇 초도 걸리지 않고 처리할 수 있었습니다.
내가 가지고 있는 지식이 한정적일지라도 문제의식을 가지고 창의적으로 확장할 수 있다면 많은 문제를 쉽게 해결 할 수 있을 것입니다. 특히 엑셀 매크로 프로그래밍에서는 더더욱 그렇습니다.
이번 편에서는 엑셀-매크로 프로그래밍 과정중 필요에 따라 소스 코드를 변경하는 방법에 대해서 예제를 통해서 상세하게 알아 보았습니다. 이 글을 읽는 분들에게 도움이 되었으면 합니다.