brunch

You can make anything
by writing

C.S.Lewis

by 별더하기 Apr 30. 2020

#1 엑셀 그 이상을 꿈꾸며

http://www.yes24.com/Product/Goods/84909299?Acode=101

엑셀은 현존하는 가장 강력한 프로그램 중에 하나라고 감히 말할 수 있습니다. 데이터 분석을 주업으로 하는 저도 엑셀은 꼭 필요한 프로그램 중에 하나입니다. 엑셀을 사용하는 모든 분들에게는 사용 중 못내 아쉬운 순간이 있습니다. 딱 막히는 그 순간 시원하게 해결해 줄 기능이 엑셀에는 분명 있을 것 같은데 나만 모르는 그 기능, 엑셀의 숨겨진 기능을 활용하게 해줄 한 꼭지가 바로 VBA인 것입니다.


제가 엑셀 VBA를 강조하고 중요하게 다루는 이유는 단순히 엑셀의 기능을 보다 폭넓게 활용하고 엑셀 전문가가 되기를 바라는 마음만이 아닙니다. 엑셀 VBA만한 알고리즘 학습도구가 없다고 생각하기 때문입니다. 알고리즘은 무엇일까요? 정통적인 방식의 정렬하고 탐색하고 압축하는 등의 지극히 컴퓨터 프로그래밍 중심의 능력을 의미한다고 생각하지 않습니다. 간혹 알고리즘이 컴퓨터의 한 분야로 인식되는데 필자는 조금 다르게 생각합니다. 알고리즘은 단순히 컴퓨터의 한 분야가 아닌 다양한 환경과 분야의 핵심적인 기본 소양입니다. 알고리즘은 주어진 문제를 해결하고 풀어가기 위해 절차를 정의한 것입니다. 학생들이 수학문제를 푸는 과정도, 프로그래머가 프로그램을 코딩하는 순간도, 데이터 분석가가 데이터를 분석하는 과정도, 글을 쓰는 과정도 모두 알고리즘에 의해 움직입니다. 알고리즘은 합리적인 체계를 구축해가는 과정입니다. 문제를 합리적 체계에 따라 접근해 풀어가는 과정이 모두 알고리즘에 속합니다. 


어떤 언어를 학습하던 해당 언어의 기능을 많이 안다고, 함수를 많이 안다고 반드시실력자가 되는 것이 아닙니다. 어차피 프로그래밍도 응용입니다. 기본적이고 핵심적인언어마다의 기능과 활용방법을 완벽히 숙지했다면 그 다음은 응용능력에 따라 실력이 가늠됩니다. 바로 이것이 알고리즘의 핵심입니다. 즉, 나만의 독창적인 문제 해결 과정

을 수립해 나가는 것을 의미합니다. 나만의 독창적인 문제해결 과정이 수립되려면 수없이 많은 문제를 받아야 하고 이를 해결하기 위한 합리적 체계를 반복적으로 수립해 보아야 합니다. 시간과의 싸움이며 반복적인 훈련의 효과입니다.


데이터쟁이로 살아가는 필자에게도 이제 프로그래밍은 숙명이 되어 버렸습니다. 알고리즘은 데이터분석에 있어 필수불가결한 요소가 된 것이지요. 이 책을 접한 모든 독자분들이 일상에서 쉽게 접하는 엑셀을 통해 프로그래밍에 친숙해지고 알고리즘의 이해하는 데 조금이나마 도움이 되길 기원합니다.


VBA? 무엇에 쓰는 물건인고


VBA는 Visual Basic for Application의 약자다. 여기서 Application은 엑셀과 같은 응용프로그램, 즉 Microsoft사에서 제공하는 ‘Office(이하 오피스)’ 프로그램을 의미하고 이 응용프로그램을 위한 Visual Basic이라는 뜻이다.

Visual Basic(이하 VB)은 프로그래밍 언어다. 그렇다. 프로그래머들이 사용하는 컴퓨터 언어다.


‘음, 그러면 그렇지. 역시 난 안 되겠네. 이제 와서 무슨 프로그래밍이야? 수고하세요.’ Nope!! 절대 걱정 안 해도 된다. 이 글을 쓰는 나도 프로그래머가 아니다. 그래도 한다. VB가 한때 선풍적 인기를 끌었던 때가 있었다. JAVA가 등장하기 이전의 이야기다. C나 C++는 어렵고, 그렇다고 시대가 요구하는 기술인 프로그래밍은 안 할 수 없고 하

니 많은 사람이 선택했던 언어이다. 지금까지도 엑셀을 비롯한 오피스 프로그램에서 VB가 활용되니 이 언어가 완벽하지는 않지만 활용도는 꽤 높은 언어라는 생각이 든다.


VB는 BASIC언어의 확장판이다. Visual이라는 단어가 앞에 붙어 시각적으로 기능이 추가되었다는 것을 알 수 있고, 더해서 시각적이라는 의미는 단박에 윈도우(Window) 시스템을 연상시킬 수 있다. VB는 그 자체로 응용프로그램 개발에 활용될 수 있지만 앞서 언급한 엑셀 등과 같은 MS 윈도우 기반의 프로그램에 이식되어 지금까지도 폭 넓게 활용되고 있는 것이다. 따라서 엑셀 VBA는 VB 언어에서 제공되는 여러 프로그래밍 기능을 엑셀과 접목해서 보다 강력한 엑셀을 구현할 수 있도록 도움을 주는 하나의 기능을 의미하게 된다.


VBA의 최대 장점은 별도의 프로그래밍 도구를 필요로 하지 않는다는 점이다. 엑셀만 있 으면 어디서든 프로그래밍을 자유롭게 구현할 수 있는 것이다. VBA를 학습하기 위해서는 먼저 엑셀과 친해져야 한다. 그러므로 아직 엑셀의 기능이 익숙하지 않은 분들은 먼저 엑셀의 기본 기능부터 익히고 VBA를 접하는 것이 더욱 효과적이다.


VBA에서 작성되는 대부분의 명령은 엑셀에서 수행되는 명령이나 동작과 유사하다. 이는 곧 VBA 코딩이 엑셀에서 제공된 사용자 인터페이스 없이 엑셀 작업을 하는 것을 의미하게 된다. 즉 대화상자에서 명령과 옵션을 선택하는 행위 대신, VBA 명령을 직접 코드로 작성하는 것을 말한다. 따라서 명령을 작성하는데 사용한 코드와 함수는 엑셀에서 표현한 기능에 이미 익숙할 경우 더욱 이해하기 쉬워진다.


VB가 언어인 만큼 이제는 엑셀의 기능을 익힌다는 마음보다 언어의 문법을 익힌다는 자세로 이 책을 읽고 실습해주길 바란다. 결국 VBA가 어려운 것은 VB라는 언어에 대한 부담감 때문이다. 반복적으로 말하지만 VB는 언어다. 그래서 일반적인 자연어와 같이 컴퓨터 언어도 문법만 외워서 되는 것이 아니다. 몸에 충분이 익어야 활용이 가능해진다. 무조건 외우기보다는 한 번 더 실습하는 훈련을 반복해주길 바란다.


https://youtu.be/iRm2dL9Kgeg

작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari