직장 생활을 하다 보면 엑셀을 잘 사용하면 일을 훨씬 편하게 할 수 있겠다라는 생각을 많이 합니다.
그래서 한번 엑셀 프로그래밍을 배우려고 합니다.
그동안 마음만 먹고 있었는데 모처럼 연휴에 여유가 있어서 마음만 먹었던 것을 시작 하려고 합니다.
우선 첫번째로 Macro 를 사용하는 방법을 보겠습니다.
일단 1에서 9까지 적어 넣고 11번째 줄에서는 그 수를 모두 더했습니다. (=SUM(B2:B10))
그 오른쪽은 랜덤 함수를 이용해서 수를 랜덤하게 불러오도록 했습니다. (=RAND()*B2)
이제 이 숫자와 수식을 오른쪽에 복사해 넣을 건데요. 이 과정을 매크로로 저장하겠습니다.
첫번째로 View - Macro - Record Macro 를 선택합니다.
그러면 위와 같은 화면이 뜨는데요. 매크로 이름을 넣고 단축키를 정한 다음에 OK 버튼을 클릭합니다.
그러면 그 이후부터 진행되는 과정은 전부다 저장이 될 겁니다.
OK 버튼을 누르고 아까 작성했던 숫자와 수식들을 복사해서 그 옆에 붙여 넣겠습니다.
위와 같이 복사해 넣고 다시 View-Macro로 가셔서 이번에는 Stop Recording을 선택합니다.
그리고 나서 오른쪽에 있는 부분을 지워보세요.
아까 저는 제가 만든 매크로(Macrotest01)의 단축키를 Ctrl-Shift-a 로 했으니까 이 단축키를 누르겠습니다.
여러분은 여러분이 정한 단축키를 눌러 보세요.
그러면 아까 범위를 정하고 복사한 다음에 복사해 넣을 위치에 와서 복사한 내용을 붙여넣기 한 과정이 자동으로 빠르게 반복되면서 값이 복사될 겁니다.
View-Macro로 가셔서 View Macro를 선택하시면 위와 같은 화면을 보실 수 있습니다.
방금 전에 만들었던 Marcotest01이 있죠?
여기서 Run 버튼을 누르셔도 해당 매크로가 실행 됩니다.
지금 프로그래밍을 하나도 하지는 않았지만 사실은 Macro를 Recoding 하는 과정에서 Excel 이 프로그래밍을 자동으로 한 겁니다.
여기서는 Visual Basic이 사용되는데요.
이 과정이 어떻게 프로그래밍이 됐는지 보시죠.
소스를 보시려면 View-Macro로 View Macro를 선택하신 후 Step Info 단추를 누르셔도 되고 그냥 엑셀쉬트에서 Alt-F11 을 누르셔도 됩니다.
Alt-F11을 누르시면 위와 같이 Visual Basic Editor가 나옵니다.
Module1을 더블 클릭하면 소스가 보이는데요.
Visual Basic은 잘 모르지만 소스를 한번 보죠.
Sub라고 돼 있는데 이건 잘 모르겠구요. 자바에서 말하는 메소드나 C에서 말하는 함수 정도 되는것 같습니다.
메소드 이름이 Macrotest01() 이지요. 아까 매크로 만들때 정했던 이름입니다.
그리고 주석을 보면 Ctrl+Shift+A 가 단축키라고 나와 있구요.
그 밑에서부터 메소드의 내용인데요.
우선 B2부터 C11 까지 선택을 합니다.
그리고 선택한 부분을 Copy 하구요.
그리고 E2 부분으로 가서 Paste를 합니다.
그 다음에 나오는 Application.CutCopyMode=False는 Copy 할 부분을 설정하면 엑셀에서는 그 부분이 점선으로 표시되는데 Esc를 누르지 않는한 그 부분이 계속 클립보드 최 우선순위에 있게 되죠.
여기서는 그 선택한 것을 해제 하는 겁니다.
그 다음 줄은 End Sub으로 메소드의 끝을 알립니다.
자바에선 {} 로 시작과 끝을 처리했는데 비주얼 베이직에서는 Sub과 End Sub으로 메소드 시작과 끝을 처리하나 봅니다.
오늘은 첫시간으로 엑셀의 매크로 기능 활용하는 법과 해당 매크로의 비주얼 베이직 소스 보기를 살펴 봤습니다.
'etc. > Excel Programming' 카테고리의 다른 글
[VBA] Userform 만들기 (0) | 2014.02.21 |
---|---|
[VBA] Developer 메뉴 보이게 하기 (0) | 2014.02.21 |
[VBA] inputBox 살펴보기 (0) | 2014.02.20 |
[VBA] Range Return 하기 (2) | 2014.02.12 |
[VBA] 엑셀과 Teradata 연동하기 (0) | 2014.02.07 |
[VBA] 두 Sheet안의 데이터들 비교하기 (4) | 2014.02.06 |
[VBA] 다른 함수 호출하기/파라미터 전달하기 (2) | 2014.02.05 |
VBA (Excel) - 필터링 한 후 합계 구하기 (0) | 2014.01.07 |
VBA (Excel) - 특정 Column 의 합계 구하기 (0) | 2014.01.06 |
EXCEL Programming - 새로운 sheet 만들기 (0) | 2014.01.06 |