WHAT Is The EXCEL-PROGRAMMING??엑셀 프로그램이 무엇인가??
엑셀프로그램이 무엇일까??
휠터링만 보여줘도 꺼벅죽는데..
Vlookup함수하나 잘써먹어도 모두 엑셀도사라고 하는데..
콘트롤몇개에 논리식몇개 붙여주면 환장을 하고 좋아하는데
피봇테이블을 싸악 한번 돌리면 정말로 미치고 환장하게 좋아하는데
뭐..!@#어렵게 VB를 하겠다구..#!@
쌩뚱맞게 왠 또 다른 프로그래밍이 필요한가??
대개의 엑셀사용자들은 그 정도 이상은 별로 관심이 없고 필요없다고 생각한다
바로 그 엑셀속에..엑셀의 뒤에는 강력한 도구가 숨겨져 있다는것을 모른다
대개의 사람들은 당장 일하는데 별로 불편이 없다고 생각하면
더이상의 개선과 향상을 생각하지 않는다
그런 보통사람과..
무엇이 또 숨겨져있는것이 있을까??라는 궁금증과 호기심을
갖은 사람은
앞으로의 인생에 무척 다른길을 가게 만든다
그 엑셀뒤에 숨겨진 강력한 도구는
처음 엑셀을 대하고 엑셀에서 놀랬던 여러가지 기능에 더하여
엑셀이상의 또다른 세상을 보여준다
사용하던 엑셀 그자체를 여러분의 입맛에 맞게 프로그래밍을
할수 있도록 해주는것이다
프로그래밍..!!이것이 과연 무슨 의미가 있는가??!!
물론 엑셀프로그래밍이 모든 엑셀사용자들에게 필요하지는 않을것이다
그러나 필요하지 않다고 생각한 사람이 무엇인지 알고 나면 필요하다고
말할수 있을것이다...아직 무엇인지 몰라서..필요없다고 하는것이다
우물안의 개구리는 우물밖의 세상을 도저히 상상할수 없다
여기에서의 프로그래밍은 엑셀에 지원 되어 있는 VisualBasic언어를
이용한 프로그래밍을 말한다
여러분이 마우스로 선택할수 있는 모든 엑셀의 내용은
엑셀의 부속품들이다..이것을 오브젝트라고 하고
이것들과 우리는 대화를 할수 있다
대화???무슨 대화..무슨 대화겠는가??
엑셀의 부속품(오브젝트)들에게 일을 시킬수 있다는것이다
워크시트라는 부속품에게..너희들 100장만 지금 당장..통합문서에
들어와라!!!!
make worksheet
라고 지시하면 지시한대로 움직여 주는것이다
통합문서에 시트가 너무많다 시트5장씩 묶어서 통합문서를 별도로
만들어 한통합문서에 많은 시트를 여러개의 통합문서로
분산하라!!
라는 지시를 하면 되는것이다
make workbook
지시를 하려면 지시하는 말을 배워야 한다
한가지 더 해보자
워크시트의 각각의 셀 150개에 각각 1에서 100사이의 숫자를
후다닥 만들어주고
각각의 셀을 검사하여 50이하의 숫자인 셀을 찾아서
셀 왼쪽모서리에 별을 하나씩 붙여라!!!
라는 지시를 내려보자
make Shape on Condition
엑셀의 구성요소(오브젝트)들은 시키는대로 죽기 살기로 일을 해준다
또다른 엑셀의 부속품(오브젝트)인 도형(Shape)과 셀(Range)에게
일을 시키는 지시문을 작성한것이다
일에 대한 지시문은 엑셀과 우리만이 서로 아는 암호(Code)를 주고 받게 되는것이다
그래서 VB언어로 주욱 명령문을 작성해 나가는 것이 곧 Coding인것이다
또 같은 코딩이라도 요령껏 자원을 낭비하지 않고
효율적으로 지시를 하는것도 필요하게 된다
나중에 모두 알게 되겠지만 매크로라는 것으로 기록하면
아래와 같이 기록이 되지만,
이것을 효율적으로 수정을 하면 아래와 같이 된다
원하는 결과는 마찬가지지만 코딩의 요령은 하수와 고수의 차이가 된다
인쇄를 하고 싶을때
인쇄용지의 방향을 가로로 하고 싶어서
이것을 매크로로 기록을 하면 아래와 같이 기다란 문장이 된다
Sub Macro1()
'
' Macro1 Macro
' uno이(가) 2005-10-25에 기록한 매크로
'
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.75)
.RightMargin = Application.InchesToPoints(0.75)
.TopMargin = Application.InchesToPoints(1)
.BottomMargin = Application.InchesToPoints(1)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = -3
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With
End Sub
위와 같이 기다란 지시문을 엑셀의 오브젝트를 이해하게 되면
아래와 같이 간략하게 정리되는것이다
위의 긴 내용이나 아래의 한줄의 지시문이나
결과는 같다
(기본값을 같이 유지 시킨 상태에서..)
Sub Macro1()
ActiveSheet.PageSetup.Orientation = xlPortrait
End Sub
지시를 하는 지시문의 문법과 작성요령을 익히고
엑셀의 이미 여러분들이 손으로 다루었던 부속품(오브젝트)들을
여러분들이 계획된 시나리오에 의한 지시문으로 다루는것..!!
그것을 배우고 활용하는것이 엑셀프로그래밍인것이다
쌤플들을 보고 느낀것이 무엇인가???
우선 시간이 절대적으로 절약된다는것이다
현대는 무엇을 만들겠다고 하는 생각이 들자마자
순간적으로 생산품이 생산되어야 하는 실시간으로 진행되는
그런 세상이다
시간의 절약(Saving Time)은 절대적이다
또한 에러가 방지되도록 철저하게 장치를 할수 있다
사용자가 어떤 입력을 하는지 철저히 통제하여 잘못된 정보가
최소화(Reducing Errors) 되도록 장치를 할수 있는것이다
또한 작업의 내용을 표준화(standardization)할수 있는것이다
각각의 부서에서 같은 내용을 입력할때 표준화되면 집계와 분석이
당연히 쉬워지고 효율적으로 관리가 될수 있는것이다
그런 표준화된 도구를 각각의 부서에 제공할수 있는 자동화프로그래밍을
할수 있는것이다
아직 쌤플에서는 없었지만
다른 프로그램과 연동(Intergrating With Other Appliations)을 시켜
보다 화려하고 효율적인 소루션들을 제작할수 있는것..등등
각자의 업무를 자동화시켜 보다 빠르게 분석을 하여
최적의 결정을 할수 있는 일들은 신나는 일이 아니겠는가??
WHY..!!??EXCEL-PROGRAMMING??왜 엑셀프로그래밍이 필요한가?
엑셀을 사용한다
수식을 알고..
논리식을 알고..
논리값을 알고..
다양한 함수를 알고..
배열을 알고..
배열수식을 알고
목록을 알고..
휠터를 알고..
정렬을 알고..
부분합을 알고..
목표값찾기를 알고..
조건부서식을 알고..
유효성검사를 알고..
챠트를 알고..
피봇테이블을 알고..
서식을 알고..
날자정보를 알고..
숫자정보가 무엇인지 알고..
문자정보가 무엇인지 알고..
각각의 정보간의 관계를 알고..
분석도 할줄 알고..
수식과 몇개의 콘트롤을 이용하여 프로그래밍도 하였고
그런데 무슨 또 다른 프로그래밍이 필요한가???
특히 수식과 워크시트함수에 능숙한 분들은 그렇게 반문한다
바로 이점이 왜 엑셀프로그래밍이 필요한가의 요점이다
엑셀에는 이미 위와 같은 수많은 보물들이 만들어져있다
우리가 프로그래밍을 할 필요가 없는것이다
위에 열거하지 않은 기능들..
만약 이것을 새로 프로그래밍을 한다면 골빠져서 할수없는 일이다
이미 위와 같이 만들어져있는 기능들을 우리는 슬렁슬렁..
우리의 일과 연결만 해주면 되는것이다
그것이 엑셀 프로그래밍이다
골빠지는 프로그래머가 아닌..
이미 만들어져있는 뛰어난 기능을 우리가 하고 있는
일상의 문제와 어떻게 접목하느냐??라는 좀더 지능화된
인간으로서의 프로그래밍을 말하는것이다
엑셀프로그래머는 자신의 처해있는 상황의 문제를
얼마나 잘 이해하고 문제의식을 얼마나 갖느냐??
에 초점을 맞추는것이지 골빠지는 코딩에 목메는것이 아니다
(물론 초보님들에게는 약간의 코딩도 정신이 없겠지만..)
여러장의 시트를 일일이 찾아다니면서 똑같은 반복작업을 하여야 한다면
수식과 워크시트함수로 될까???안된다!!
수식의 결과값은 수식이 들어있는 셀에서만 결과값이다
어떤셀의 값이 변했을때 다른 시트의 정해진 범위가 아닌
상황에 따라서 바뀌는 범위를 찾아서 어떤값을 전달하여 한다면
그런일이 가능할까??
그런 기능을 포함한 버전업이 나오지 않는한 불가능하다!!
피봇테이블에서 만들어낸 특정분석값을
일일이 피봇을 돌리지 않고 간단하게 원하는 값만 만들어 낼수 있을까??
아무튼 지루한 바보같은 반복작업을 간단하게 버튼한번 크릭으로
처리할수 없을까??
여러분이 일을 하면서 이짓을 계속 반복해서 하여야 하나??
라고 생각하는 일들은 모두 엑셀로 프로그래밍이 될수 있다
로또가 유행이다
100번을 로또를 샀다고 치고 시뮤레이션을 돌려서
당첨율이 얼마나 될까??보고 싶지 않을까??
이것도 필요한 숫자를 때려넣고 반복적으로 엑셀에게 일을 시켜 보면 되는것이다
인터넷을 이리저리 돌아다닐 필요없이 그냥 직접 엑셀에게 일을 시켜보면 된다
simulate lotto
남들 보다 빠르고,정확하게 업무를 처리하여 생산성을 높이기 위하여서는
엑셀프로그래밍은 필수적이다
왜 엑셀프로그래밍이 필요한지 한가지 더 해볼까
증권투자나 각종 투자를 즐기는 분들도 아래와 같은 쌤플을 보시면
으흠...이렇다면..내가 하는 이 작업도 이렇게 구현해보면 효율적이겠군!!
이라고 느낌을 받으실것이다
발전과 개선은 왜 필요한지..왜 하여야 하는지 알면 그것은 자기의 것이 된다
animate stock chart
간단한 몇줄의 코드로 자동화가 된 상태의 증권추세의 흐름을 보는 툴로 활용하는 도구를 만든다
엑셀을 숫자만 다루는 회계프로그램으로 아는 분들이 많다
엑셀의 활용은 모든 분야의 일하는 사람에게는 모두 필요하다
숫자가 아닌 문자만 다룬 쌤플을 하나 보자
manage string data
다양한 쌤플을 만들자면 한이 없다
내친 김에 쌤플하나 더 보자
마우스로 주욱 셀을 훑어만 주어도 스케쥴이 그려지고
날자가 자동계산된다
make auto time table
쌤플에 대한 설명은 없었다
앞으로 기본을 다져가면서 하나,하나 여러분의 도구로 만들어 나가다 보면
실생활에 필요한 모든것을 스스로 만들수 있을것이다
얼마나 어떻게 만드느냐는 여러분의 상상력과 문제의식의 한계까지다!!
아쉬우니까..하나만 더 해보자..엑셀에서 프로그래밍을 숙달시키면
VBA를 지원하는 모든 프로그램에서 자동화 할수 있다
예를 들어서..
파워포인트로 남들보다 인상적인 프레젠테이션화일을 할수도 있을것이다
(다운받지 마시고 그냥 열기로 하시고 매크로실행버튼크릭한다)
PowerPoint Animation
이 정도면 왜 엑셀프로그래밍을 할 이유가 있는지 알것이다
[엑셀로 VB를 배웁시다]주간강좌를 시작할때만 해도
남보다 앞서기 위하여 습득했지만..
이제는 [엑셀로 VB를 배웁시다]를 통하여 수많은 사람들이 습득하여
이제는 남보다 뒤지지 않기 위하여 필요한 시점이 되었다
How To Get EXCEL-PROGRAMMING...어떻게 여러분의 것으로 만들수 있나?
그동안의 엑셀로 배우는 VB를 통하여 많은 분들이
능력을 응용 확장하여 각각의 분야에서 쓸만한 인물들이
되어 있을 것이다
그러니 이곳에 오셔서 꾸준히 하면,취미중의 하나가 엑셀이면 된다
솔직한 이야기로 일주일 완성..일개월 완성은 없다
가장 빨리 자기의 것으로 만드는 사람은 일에 대한
문제의식이 있는 사람이다
자기가 하는 일을 어떻게 효율적으로 빠르고 정확하게 처리할까??
라는 문제의식이 있어야 하는것이 기본이다
엑셀을 배우는것이 아니고 일을 어떻게 개선시킬까..??
라는 생각을 훈련하는 것이다
엑셀과 대화를 하는 말을 배우는데 이론만 갖고 되는것이 아니다
자꾸 대화를 나눠보고
그러나 때늦게 이곳에 와서 보니
쌓여진 [엑셀로 VB를 배웁시다]주간강좌를 처음부터 다시 보려니
화일의 갯수에 억장이 막히고..
사백여회이상되는 주간강좌의 엑기스만 뽑아서 볼수 없을까??
그런 분들을 위하여 이 페이지를 구성하였다
실은 [엑셀로 VB를 배웁시다]주간강좌의 초기화일은
폐기시켜야할 입장이다..
이유는 엑셀버전의 업그레드에 따라 사용하지 않아도 될 오브젝트들을
다루고 있기 때문에 쓸데없는 것을 배우는 셈이 된다
또 이페이지를 만들게 된 이유는 프로그래밍워크샵에서
기초가 부족한 분들을 위하여 프로그래밍워크샵의 기초를 위한 코너로
분리하여 구성하여 놓았다
물론..프로그래밍워크샵멤버용이다
10여년의 uno21.com 온라인 강좌를 좀더 요약하여
빠르게 실무에 적용할수 있도록 최선을 다할것이므로
이곳의 화일을 하나..하나 숙달 확장시키시면 누구나 프로그래밍을
할수 있게 될것이다
문제는 엑셀을 잘하고 싶은것이 아니고
하시는 일을 잘하고 싶다는 생각이 있으시면 된다
많은 분들의 참여를 통하여 나름대로의 발전이 있기를 기대 해 본다
Where This pages are heading for ...이 페이지는 어떻게 진행될것인가?
[엑셀로 VB를 배웁시다]를 시작할때..
이렇게 오랫동안 계속할것을 생각도 못했고
그러다 보니 준비없이 올리다보나..가장 부족한것이..자료는 수도 없이
많이 올라갔지만..찾아보기가 힘든 정도가 아니라 거의 불가능하다!!
웹싸이트로서 빵점이다
[엑셀로 VB를 배웁시다]를 시작할때만해도 엑셀의 올드버전화일들이라서
종종 최근버전과의 충돌로 에러가 난다..
이런것들을 다시 버전업,정리하기 보다는
옛것은 옛것대로 놓아두고..
새로운 구조와 시스템으로
당초에는 웹페이지를 ASP화일로 구성하였었으나..
확 엎어버리고 ASP.NET으로 새로 구성하느라고 시간이 좀 걸렸다
새로운 페이지를 구성하는것이 좋겠다는 의미에서 이페이지가 시작된다
- 자료가 어느정도 쌓인후에는
- 찾아보기 쉽게 하여 그동안의 이곳의 최악의 단점을 보완한다
- 엑셀프로그래밍의 모든 문제를 풀수 있는 자원이 되도록 한다는 기본으로..
- VBA의 기본문법
- VBA의 함수들
- Excel의 오브젝트의 이해와 활용
- Office의 다른 프로그램에 접근활용
- 간단한 응용 소루션 예제화일
- 등으로 구성하여 나가면서
- 기존의 [엑셀로 VB를 배웁시다]와 다르게
- 웹페이지와 엑셀화일을 병행하면서 진행한다(그래야..찾아보기 쉽다)
- 기존의 [엑셀로 VB를 배웁시다]의 진행은 변함없이
- 어떤 틀에 억메이지 않고 질문의 답이나 시기에 맞는
- 적절한 테마로 진행하고..
- 그중에서 좋은 예제가 될 구문은 다시 이곳에서
- 다시 좋게 손을 보고,찾아보기 쉬운 예제화일로 올릴것이다
- 페이지가 몇장이 되던 상관없이 계속 진행하여 나간다..
- 그래서 완성되지 않은 상태의 온라인북이다
- 초보님들은 같이 책을 만들어가면서 같이 보게 되니까..
- 좀더 부담없이 덤벼들수 있을것이다
- 그리고 완성된 페이지도 계속 추가 수정 손을 보면서 진행한다
- 또한 새로운 버전의 새로운 기능이 나오면 추가 보완해 나간다
- 버전이 바뀔때마다 새로운 책을 보아야 하는 그런것이 아닐것이다
- 맨위의 메뉴가 좀 당분간 엉성할것이다
- 왜냐하면 기본적인것을 계속 추가해 나가니까..
- 내용중에 잘못된것이 있다면 메일주시면 반영할것입니다
What to be prepared to start..이곳에서 시작을 하려면 무엇을 준비해야 하나??
엑셀 2000버전이상이 컴퓨터에 깔려있고
끈기와 섬세함과 문제의식이 있으시다면 된다
위와 같은 것이 전혀 없으시다면 이곳은 시간낭비다
그리고 사용중인 엑셀의 매크로보안을 보통으로 설정하셔야 한다
Don't Get Me Wrong!!...우노를 오해하시지 마시기를..!!
이곳에서는 뻑하면 영어를 쓰고..
영어로 타이틀을 달고..켑션을 단다
그냥 페이지의 데코레이션정도로 생각하시기 바란다
비약하여..민족이 어떻고..애국이 어떻고..이념이 어떻고
한글사랑이 어떻고..라고 하시면 깝~깝해진다
실은 그렇게 민족과 국가를 사랑(?)하시는 분들은 바뻐서
이런 썰렁한곳에 들어 오시지도 않을것이다
그리고 컴퓨터라는 넘이 우리가 만든것이 아니고 영어를 사용하는 사람들이
만들어 놓은 물건이라..용어가 영어이니까..그냥 영어를 쓴다
아니다..최대한 우리말을 쓴다..그러나 가끔 어쩔수 없이 쓴다
영어는 그냥 지식을 다루는 도구일뿐이다!!
애국애족하고는 전혀 상관이 없는 도구이다!!
엑셀이나..컴퓨터나 인터넷이나 이미 모두 세계화도구인것이다
또한 학교다니면서 영어에 수년간 투자한 본전이 아까워서라도 활용해야 한다
영어에 퍼붓는 자원은 세계제일..
영어를 제일못하는 것도 세계제일..
이런 타산맞지 않는 장사를 하지 않기 위해서라로 자꾸,활용하여
지식을 확장하여야 하지 않을까??..
우노가 좋아하는 말중에 이솝우화의 Sour Grape가 있다
여우가 포도를 따먹으려고 발버둥치다가 너무 높아서
점프를 더 이상 할수가 없다
그러면서 포기한다..그리고 하는 소리가
Sour Grape!!(저 포도는 시어서 못먹어!!)
병들은 자기 합리화의 대표적인 우화다
자신을 속이고 사는 사람들이 너무도 많다
자신을 속이는 못된 합리화,
그런것이 모두 암이되고 성인병이 되고 우울증이 된다
모두 발전하기를 빈다