Skip to content
Home » 엑셀 매크로 코딩 | 1시간만 투자하면 엑셀 메크로 프로그램을 만들고 Vba로 편집할수있는 방법을 알려드릴께요 ! 19159 명이 이 답변을 좋아했습니다

엑셀 매크로 코딩 | 1시간만 투자하면 엑셀 메크로 프로그램을 만들고 Vba로 편집할수있는 방법을 알려드릴께요 ! 19159 명이 이 답변을 좋아했습니다

당신은 주제를 찾고 있습니까 “엑셀 매크로 코딩 – 1시간만 투자하면 엑셀 메크로 프로그램을 만들고 VBA로 편집할수있는 방법을 알려드릴께요 !“? 다음 카테고리의 웹사이트 https://kk.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: https://kk.taphoamini.com/wiki. 바로 아래에서 답을 찾을 수 있습니다. 작성자 IB 96 이(가) 작성한 기사에는 조회수 164,717회 및 좋아요 1,857개 개의 좋아요가 있습니다.

Table of Contents

엑셀 매크로 코딩 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 1시간만 투자하면 엑셀 메크로 프로그램을 만들고 VBA로 편집할수있는 방법을 알려드릴께요 ! – 엑셀 매크로 코딩 주제에 대한 세부정보를 참조하세요

☞ IB96 채널 은 컴퓨터 프로그램과 스마트폰 IT 모바일 기기 사용법 응용능력 기능 을
알려드리는 교육 채널입니다 _
IB96 채널 영상은 https://www.ib96.com 에서 제공받았습니다
IB96 구독및 멤버쉽 회원 [가입]을 해주시면 좀더 좋은 컨텐츠로 보답하겠습니다
감사합니다

#엑셀메크로 #VBA편집 #엑셀메크로VBA배우기

엑셀 매크로 코딩 주제에 대한 자세한 내용은 여기를 참조하세요.

엑셀 VBA #3. 매크로로 작성된 VBA 코드로 프로그래밍 하는 방법

Excel VBA 프로그래밍 언어 공부보다 중요한 매크로 사용법 지난 포스트에서 엑셀 VBA 및 매크로를 사용하기 위한 환경설정에 대해 소개하였습니다.

+ 여기에 보기

Source: juahnpop.tistory.com

Date Published: 2/10/2021

View: 4412

엑셀 매크로 (VBA) 시작하기 – 업무의 잔머리

메뉴의 개발도구 → 매크로 기록을 통해 간단히 실행할 수 있는 이 기능은 내가 엑셀에서 하는 동작을 하나하나 기록하여 VBA 코드로 만들어 줍니다. 때문에 내가 원하는 …

+ 여기를 클릭

Source: tricks-office.com

Date Published: 3/3/2022

View: 8159

04-1 코드의 묶음 – 코딩 초보를 위한 엑셀코딩, VBA

코딩 초보를 위한 엑셀코딩, VBA · 04 엑셀에 보이는 코딩 … 직접실행창에 커서를 두고 실행버튼을 누르면 매크로 묶음이 T랑 멘트 두개가 나와 …

+ 여기에 표시

Source: wikidocs.net

Date Published: 1/2/2021

View: 2860

엑셀 VBA 강좌(2): 엑셀 VBA 기초 – Tistory

직접 실행 창에 다음 코드를 복사하여 붙여넣고 엔터키를 누른다. vba. 접기 줄바꿈. MsgBox “Hello, World!”.

+ 여기를 클릭

Source: prodtool.tistory.com

Date Published: 1/20/2021

View: 5925

엑셀 VBA Editor 열고 코드 입력하기 – 오피스맨

엑셀 VBA Editor 열고 코드 입력하기 · 1. 단축키 : Alt + F11 · 2. [개발도구] – [Visual Basic] 버튼클릭 · 3. 시트탭에서 우측마우스 클릭 – [코드보기] …

+ 여기에 자세히 보기

Source: ms-office.tistory.com

Date Published: 7/17/2022

View: 7932

엑셀로 코딩을? – Prologue. 엑셀 프로그래밍이 뭔데?

엑셀로 코딩을? – Prologue. 엑셀 프로그래밍이 뭔데? … 안녕하세요! 저는 투도스의 떠오르는 샛별 “봄이” 입니다. 여러분들과 소통하게 되어서 …

+ 여기에 보기

Source: m.blog.naver.com

Date Published: 1/5/2021

View: 7516

VBA 엑셀 코딩 #01 모듈 삽입 , Sub프로시저 만드는 … – 나미널

이번에는 VBA의 기초 “모듈 삽입 및 Sub프로시저 만드는 방법”에 대해 설명해드리려 합니다. 1. Visual Basice 열기 먼저 코딩을 하기 위해 코딩 창인 …

+ 자세한 내용은 여기를 클릭하십시오

Source: naminal.tistory.com

Date Published: 5/17/2021

View: 3157

[Excel VBA] 기초 VBA문법

오늘은 VBA코드를 작성할 때, 가장 기초적인 문법에 대해 설명드리고자 합니다! 먼저 프로그래밍의 기초인 자료형에 대해 알아보아요! 자료형. 자료형이란 …

+ 여기에 자세히 보기

Source: setori-dev.tistory.com

Date Published: 3/1/2022

View: 928

칼퇴를 부르는 엑셀 매크로와 VBA 사용기 – 브런치

물론 엑셀 수식을 많이 알고 있으면 수작업이 줄어드는 것은 맞지만 그게 … 엑셀로 하는 모든 작업을 VBA 코드로 Coding 한 후 실행할 수 있다.

+ 여기에 표시

Source: brunch.co.kr

Date Published: 10/13/2021

View: 5671

주제와 관련된 이미지 엑셀 매크로 코딩

주제와 관련된 더 많은 사진을 참조하십시오 1시간만 투자하면 엑셀 메크로 프로그램을 만들고 VBA로 편집할수있는 방법을 알려드릴께요 !. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

1시간만 투자하면 엑셀 메크로 프로그램을 만들고 VBA로 편집할수있는 방법을 알려드릴께요 !
1시간만 투자하면 엑셀 메크로 프로그램을 만들고 VBA로 편집할수있는 방법을 알려드릴께요 !

주제에 대한 기사 평가 엑셀 매크로 코딩

  • Author: IB 96
  • Views: 조회수 164,717회
  • Likes: 좋아요 1,857개
  • Date Published: 최초 공개: 2020. 4. 19.
  • Video Url link: https://www.youtube.com/watch?v=kdX7e0RRfhI

엑셀 VBA #3. 매크로로 작성된 VBA 코드로 프로그래밍 하는 방법

Excel VBA 매크로와 VBA

Excel VBA 프로그래밍 언어 공부보다 중요한 매크로 사용법

지난 포스트에서 엑셀 VBA 및 매크로를 사용하기 위한 환경설정에 대해 소개하였습니다. 이번 포스트는 본격적으로 VBA 사용 방법에 앞서 매크로를 이용한 VBA 코드 작성법에 대해 소개 합니다. 저는 이 포스트의 방법이 있어서, Excel VBA가 어느 자동화 툴보다 괜찮은 도구라고 생각합니다.

지난 글

사전안내사항 ※ 이 포스트는 엑셀 매크로 사용법이 아닌, VBA 코드를 작성하는데 도움이 되는 매크로 사용법을 설명합니다.

매크로(Macro)란?

매크로(Macro) 기능은 정해진 순서에 따라 동작하도록 정의된 규칙을 말하고, 정해진 순서대로 동작하는 프로그램을 매크로 프로그램이라고 말합니다. 수강신청, 콘서트 티켓과 같이 부적절한 사용 때문에 매크로란 단어가 부정적인 이미지가 있지만, 본래의 목적은 작업에 투입되는 리소스와 오류를 줄이기 위해 사용됩니다.

엑셀 메크로 사용해보기

지난 포스트의 설명처럼 엑셀 리본 메뉴 개발 도구 탭을 활성화하면 매크로 기능을 사용할 수 있습니다. (포스트 작성하면서 보니, 기본 엑셀 보기 탭에서 있었네요.. 왜 이제 알았지..)

매크로 사용 예시로, 아래와 같은 표 서식을 적용하는 매크로를 만들어 보겠습니다. 왼쪽은 표 서식이 없는 표 3개이고, 오른쪽은 표 서식이 적용된 같은 표 3개입니다.

매크로 사용으로 표서식

매크로 녹화는 표 2만 사용하고, 작성된 매크로를 사용하여 표 1, 표 3에 적용하여 표 서식을 바꾸도록 하겠습니다. 이와 같이 매크로를 작성하기 위해 표에 적용된 서식을 유심히 보면 2구역으로 나눌 수 있습니다. 번거롭지만 매크로를 2개 작성하면 표 서식을 적용할 수 있습니다.

구역 1 : 첫 줄 노란색 음영 아래쪽 이중 테두리

구역 2 : 전체 전체 태두리 적용 오른쪽, 아래쪽 굵은 태두리

구역 1 매크로 만들기

아래와 같이 매크로 기록을 시작합니다.

D4~D5셀을 선택

매크로 기록 버튼을 누르기

매크로 기록 창에서 바로가기와 설명을 입력 – ※ 필수사항 아님

매크로 기록 창에서 확인 버튼 클릭

매크로 기록 시작하기

매크로 기록 창에서 확인 버튼을 누르면 메크로 녹화가 진행됩니다. 지금부터는 엑셀에서 하는 모든 이벤트가 ‘매크로 1’이름의 매크로에 모두 기록됩니다. 아래와 같이 표 서식을 입력합니다. 그림의 번호대로 진행하시면 됩니다.

📌 D4~D5셀 선택 > 마우스 우클릭 > 셀 서식 > 태두리 탭 선택

📌 태두리 탭에서 표 서식 적용하기

표 서식 적용하기

적용이 완료되면 기록 중지 버튼을 버튼을 클릭하여 녹화를 마칩니다. 첫 행 매크로 녹화가 완료되었습니다.

기록 중지

구역 2 매크로 만들기

아래의 순서로 새로운 매크로를 생성하고 녹화를 진행합니다.

(중요) D5 ~ E7 셀을 선택

D5 ~ E7 셀을 선택 매크로 기록 버튼을 누르기

매크로 기록 창에서 바로가기와 설명을 입력 – ※ 필수사항 아님

매크로 기록 창에서 확인 버튼 클릭

본문 서식 지정 매크로 기록 시작

본문 영억의 표 서식을 아래와 같이 지정합니다. 표 서식은 아래 그림의 번호 순서대로 하시면 됩니다.

📌 D5 ~ E7 셀 선택 > 마우스 우클릭 > 셀 서식 > 태두리 탭 선택

📌 태두리 탭에서 표 서식 적용하기

구역2 표서식 지정

적용이 완료되면 기록 중지 버튼을 버튼을 클릭하여 녹화를 마칩니다. 구역 2의 매크로 녹화가 완료되었습니다.

기록 중지

매크로 적용하기

매크로 적용은 구역 2부터 진행 후 구역 1을 진행합니다. 표 1의 첫행 선택 후 위에서 단축키로 지정한 Ctrl + q 를 누르면 첫행 서식이 적용됩니다. 표 3의 첫 행도 동일하게 Ctrl + q 로 실행합니다.

구역2 범위 지정후 Ctrl+q 로 서식 지정

나머지 표 1의 첫행, 표 3의 첫 행을 선택하여 위의 매크로에서 지정한 단축키 Ctrl + r 로 첫 행의 서식을 지정합니다.

구역1 범위 선택 후 Ctrl+r 로 서식 지정

매크로의 한계점과 VBA

위의 하나 예시로 말씀드리긴 어렵지만, 매크로만 사용해서 완전한 자동화를 만들기는 어렵습니다. 위의 간단한 표 서식을 적용하는 것만 봐도, 이런 매크로 작성 방식으로는 제목이 2둘이거나, 왼쪽 1줄도 강조를 주어야 하는 표 서식을 만들기는 힘듭니다. 제가 느끼는 매크로의 한계점은 아래와 같습니다.

변수가 있는 상황에 대처하기 어렵다.

변수를 대처하기 위해 순서와 시나리오를 아주 잘 작성해야 한다.

위의 시나리오를 잘 작성해도 매크로 1회 실행으로 자동화 하기는 어렵다.

위의 한계점 때문에 표 서식을 만드는 매크로는 구역을 2개로 나누고, 표2를 사용해서 메크로 기록을 하였습니다. 생성되 매크로를 적용할 때에도 내용을 먼저 하고 첫행을 나중에 했습니다. 이런 한계는 VBA를 사용해서 해결 될 수 있습니다.

매크로와 VBA

VBA로 위와 같은 표서식을 만드는 매크로를 만들면 아래의 논리적인 순서로 만들 수 있습니다.

표 전체를 선택한 상태에서 시작

표 전체 내부/외부 일반 테두리 지정

표 전체 오른쪽, 아래 굵은 테두리 지정

표의 첫 행을 알아서 선택해서 노란색으로 지정 후 아래쪽에 이중 테두리 지정

VBA는 VIsual Basic 언어로 Excel을 위한 부가기능을 만들 수 있는 장치라고 말할 수 있습니다. 그렇다면 위의 4가지를 수행하기 위해 어떤 코드를 작성해야 하는지 알아야 합니다. 테두리 설정, 배경색 설정하는 코드를 알기 위해 검색사이트에서 검색할 수 있지만, 엑셀 매크로를 사용하면 이벤트가 VBA코드로 기록됩니다. 위에서 작성한 매크로의 VBA코드를 보기 위해서 Alt + F11 로 VBA Editor 창을 열어 확인할 수 있습니다. 에디터 창을 열면 sub 매크로 1() 내에 아래 그림과 같은 코드를 볼 수 있습니다.

매크로1의 코드

위의 에디터 창에서 Sub 매크로1() 함수 내에 마우스를 클릭하여 커서를 두고, 엑셀 화면에서 아무 영역을 그래드 하고, 에디터에서 코드 실행을 누르면 매크로 1이 실행되는 것을 확인할 수 있습니다.

에디터에서 매크로 실행하기

매크로를 사용하여 VBA 코드 작성

위의 매크로 작성에서 매크로 1과 매크로2의 기능을 정리하면 아래와 같습니다.

매크로1 : 표 첫행 서식 지정

매크로 2 : 표 본문 내용 서식 지정

위의 매크로를 사용하여 아래와 같은 코드를 새로 생성합니다. 기존 매크로를 사용하면서 Selection.Rows(1).Select 코드를 추가하였습니다. 이 코드의 의미는 현재 선택된 코드에서 첫 번째 줄을 선택하는 코드입니다. 코드의 의미는 이후 포스트에서 차차 설명할 예정입니다.

Sub MyTableForm() Call 매크로2 Selection.Rows(1).Select Call 매크로1 End Sub

에디터 창에서 제일 아래에 코드를 작성하시면 됩니다.

VBA 에디터에서 코드 작성

VBA 코드 실행

엑셀에서 매크로 또는 VBA를 실행하는 방법은 아주 다양한데, 버튼을 누르는 방식을 사용해서 실행해보겠습니다. 아래 gif와 같이 도형을 생성하고, 도형에 MyTableForm 메크로를 지정합니다. 이 버튼을 누르면 MyTableForm 매크로가 실행됩니다.

표 서식을 지정할 범위를 선택하고, 표 서식 실행 도형을 누르면 매크로가 실행됩니다.

VBA 코드 실행

마무리

이번 포스트에서 간략하게 매크로 사용법을 알아보고, 기록된 매크로를 사용하여 내가 원하는 기능을 구현하는 예시를 소개드렸습니다. 본문의 표 서식을 만드는 방법은 엑셀 VBA를 사용하지 않더라도, 엑셀의 스타일을 사용하면 되지만 예시로서 보여드렸습니다. 이후 포스트에서 찾아뵙겠습니다.

끝까지 봐주셔서 감사합니다.^^

관련포스트 👉 엑셀 VBA 강좌 관련글 목록 보기

엑셀 매크로 (VBA) 시작하기

엑셀 매크로 (VBA) 시작하기

엑셀을 좀 다뤄본 사람이라면 누구나 한번 쯤은 욕심내는 영역, 하지만, 꽤 높은 진입 장벽이 느껴지는 영역이 바로 이 엑셀 매크로 (VBA) 아닐까요?

이와 같은 엑셀 매크로 (VBA)를 처음 공부할 때 유용한 팁을 살펴 보겠습니다.

0. 엑셀 매크로 (VBA) 사용 설정하기

VBA를 사용하기 위해서는 메뉴에 “개발 도구” 메뉴를 추가해 두는 것이 편합니다.

메뉴에서 파일 → 옵션 → 리본 사용자 지정 → 개발도구를 체크 → 확인을 누르면 메뉴에 개발도구 탭이 추가됩니다.

개발 도구가 추가되면 메뉴에 개발 도구라는 탭이 추가 되는데, 처음 VBA를 설정할 때에는 매크로 보안을 설정해 주는것이 좋습니다.

개발메뉴 → 매크로 보안을 선택하여 보안센터 메뉴를 불러와서 설정해 줄 수 있습니다.

1) 매크로 설정 → 모든 매트로 포함 으로 설정해 두거나

2) 신뢰할 수 있는 위치 → 매크로를 저장할 폴더를 지정해 두어아

매크로 파일의 사용이 가능합니다.

개인적으로는 2)번 방법을 더 추천합니다.

내가 믿을 수 있는 매크로 파일을 하나의 폴더에 지정해서 저장해 두고, 그곳에 있는 파일만 매크로 파일로 사용을 허용하는 것이 보안 관점에서는 보다 잘 관리될 수 있기 때문입니다.

1. 왜 하필이면 엑셀 매크로 (VBA)? (매크로 기록)

VBA는 MS Office 대부분의 프로그램에서 다룰 수 있습니다.

하지만, 실질적으로 가장 VBA를 많이 사용하는 프로그램은 엑셀일 것입니다. 실제 제가 운영하는 유튜브 채널에서도 RPA 전용 툴을 제외하면 가장 자주 나온 주제가 바로 엑셀 VBA 였던것 같습니다.

다른 프로그램에서도 VBA가 활용 가능한데, 엑셀 VBA가 인기인 이유 중 첫번째는 다른 Office 프로그램 대비 익히기가 용이하다는 것이 있겠습니다. 무엇보다도 매크로 기록 기능이 있기 때문입니다.

매크로 기록 기능은 개발 도구 메뉴에서 쉽게 찾아볼 수 있습니다. 이 매크로 기록 기능은 안타깝게도 MS Office의 엑셀과 Word에서만 지원하고 있습니다.

메뉴의 개발도구 → 매크로 기록을 통해 간단히 실행할 수 있는 이 기능은 내가 엑셀에서 하는 동작을 하나하나 기록하여 VBA 코드로 만들어 줍니다.

때문에 내가 원하는 기능을 바로바로 만들기에 좋을 뿐만 아니라, 내가 구현하고 싶으나 정확하게 알지 못하는 여러가지 Function들에 대해서도 사용이 가능합니다.

예를 들어 아래 링크와 같은 KBO 사이트에서 팀 순위표를 엑셀로 복사해서 가져온 다음 원하는 형식으로 편집하는 작업을 매일 한다고 가정을 했을때

KBO 홈페이지 KBO, 한국야구위원회, 프로야구, KBO 리그, 퓨처스리그, 프로야구순위, 프로야구 일정

해당 영역을 복사한 다음 엑셀에 붙여 넣으면 내용은 잘 붙습니다.

여기서 몇가지 편집을 통해 일괄적으로 보고 싶은 양식이 있다고 했을 때 매번 자료를 가져온다음 그와 같은 반복 작업을 하는것은 번거로울 수 있습니다.

간단한 예시로 승률(G열)을 굵게 강조하고 순위 1~4까지를 색깔 변경을 하고, 표 테두리 색을 진하게 한다고 할 때

매반 하나하나 선택하여 작업해도 되겠지만, 항상 해야하는 일이 똑같다면 매크로로 한번 그 과정을 저장하여 만들어 두면 좀더 편하게 작업할 수 있습니다.

​메뉴의 개발도구 → 매크로 기록을 클릭하고 편집작업을 시작합니다.

편집작업을 마친다음 기록 중지를 누릅니다.

이제 개발도구 → Visual Basic을 클릭하여 VBA 화면에 들어가면 모듈탭이 하나 만들어져 있고, 내가 모르는 소스 내용이 잔뜩 들어가 있습니다.

Sub 매크로1() Range(“G2:G11”).Select Selection.Font.Bold = True Range(“A2:L5”).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent4 .TintAndShade = 0.599993896298105 .PatternTintAndShade = 0 End With Range(“A1:L11”).Select Range(“L11”).Activate Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Color = -9737365 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Color = -9737365 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Color = -9737365 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Color = -9737365 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Color = -9737365 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Color = -9737365 .TintAndShade = 0 .Weight = xlThin End With End Sub

내가 한 동작은 몇 동작 안 되는것 같은데, 기록된 내용은 어마무지하게 많습니다.

이는 엑셀 매크로 기록하기에서 저장을 할 때 내가 설정한 값 이외에도 설정창에서 설정할 수 있는 모든 값들을 일괄 수정하기 때문에 발생하는 현상입니다.

이때 수정되는 값들에 대해서도 각각의 값의 이름을 보면 어떤 값인지를 짐작할 수가 있어서 주의해서 살펴보면 꽤 많은 공부가 됩니다.

소스를 잘 살펴보면 실제 매크로가 실행될 때의 명령어는 어떤 패턴을 가지는 것을 발견할 수 있습니다.

1. 선택하고

2. Action

이는 나중에 매크로 기록을 활용하지 않더라도, 내가 원하는 기능을 직접 만들 때도 신경을 써야하는 두 요소라고 봐주는게 좋을듯 합니다.

선택하고, Action, 선택하고, Action을 반복하는…

2. 선택의 기본 Range (또는 Cells)

매크로 기록 기능을 잘만 활용하면 내가 구현하고자 하는 기능을 구현에 대한 부분은 큰 도움을 받을 수 있습니다. (프로그램 소스가 효율적이냐 아니냐는 그 다음 문제이겠지만요…)

앞서 살펴본 코드의 패턴을 보더라도 내가 원하는 동작을 하는 것 못지않게 중요한 것이 원하는 동작을 수행할 범위를 선택하는 것입니다.

수행 범위를 정확히 설정하는 것이 중요한데, 그렇기 때문에 엑셀 VBA를 익힐 때 엑셀의 내부 데이터 구성, 특히 그중에서도 Range에 대한 부분 만큼은 먼저 개념을 잡고 들어가는 것이 좋습니다.

기본적으로 엑셀은 엑셀 파일(Workbook) → Sheet → Cell 로 구성되어 있습니다.

Range는 여기서 Cell 영역의 집합(또는 범위)을 뜻하고, 원래는 특정 Sheet 아래에 종속되는 개념입니다. (Sheet는 또다시 Wrokbook의 아래에 종속됩니다.)

따로 정해주지 않을 경우에는 현재 선택되어 있는 Workbook 하위의 선택된 Sheet 하위의 개념이라는 의미가 생략된 채로 활용되게 됩니다. ​

범위을 표기하는 방법은 크게 두가지 방법이 있습니다.

(1) 엑셀에서의 표기하는 방법과 동일한 방식 Range

엑셀에서 특정 칸을 고르면 수식 표시줄의 좌측 끝에 현재 칸의 주소가 표시됩니다. 위 이미지에서 봤을때 B열 5번째 줄이라는 의미로 B5로 표시됩니다. 여러칸의 범위를 한번에 잡으면,

수식 표시줄에는 첫칸에 대한 정보만 가지고 있지만, 컴퓨터에서는 (또는 다른 수식을 적용할 때도) B5칸에서 D5 칸까지의 범위라는 뜻으로 “B5:D5”로 표시되게 됩니다.

앞서 살펴본 매크로 기록 기능에서 자동으로 만들어진 소스를 보면 이와 같은 형태의 범위 설정에 대한 내용을 살펴볼 수 있습니다.

Range(“G2:G11”).Select

Range() 안에 “”사이에 엑셀에서 인식하는 주소를 입력하는 방식으로 범위를 잡을 수 있는 것을 알 수 있습니다.

​이와 같은 방식은 아무래도 엑셀에서 일반적으로 데이터를 다루거나 수식을 걸어줄때 사용하는 Cell의 주소와 일치하는 형식이기 때문에 처음 접하시면 이해하기도 쉽고 다루기도 쉽습니다.​

2) 엑셀 매크로 (VBA)에서 자주 사용되는 범위 설정식 Cells

반면, 특정 조건에 의해 몇번째 행, 몇번째 열인지를 계산하여 그때 그때 바꿔서 선택해야 하는 경우에는 조금 까다로울 수가 있습니다.

행에 대한 정보야 숫자로 되어 있기 때문에 특정값을 기준으로 더하거나 빼는 방식으로 쉽게 위치를 잡아줄 수 있지만, 열에 대한 정보는 알파벳으로 되어 있어서 몇 칸 뒤, 몇 칸 앞 등과 같은 방식의 위치를 잡기에는 불편합니다.

이럴 때 활용할 수 있는 범위는 Cells라는 값으로, Range와 병행하여 사용하거나, 대체하여 사용할 수 있습니다.

​예를 들어 Range로 표시된

Range (“B5”)

는 다음의 Cells 방식으로 대체할 수 있습니다.

Cells(5,2)

행과 열을 표시하는 순서가 바뀐다는것, 알파벳 영역이 몇번째 열인지를 뜻하는 숫자로 표시된다는 점만 기억하면 어렵지 않게 이해가 될 것입니다.​

여러 칸이 범위로 선택될 경우에 Range로는 다음과 같이 쉽게 표현할 수도 있지만,

Range (“B5:D8”)

Range와 Cell의 조합으로 다음과 같이 약간 더 길게 표현할 수도 있습니다.

Range (Cells(5,2),Cells(8,4))

언뜻 보면 Range만으로 활용하는 것이 훨씬 간결하게 표현되고 사용하기 좋아 보이지만, (고정된 칸을 그 위치 값만 가지고 사용한다면 실제 더 편한것도 사실입니다.)

어떤 수식을 걸거나 반복작업을 하는 등의 Logic을 걸어줄때에는 (몇칸 이동 몇줄 이동 등) Cells와의 조합을 활용하는 것이 좋습니다.

MS Office 엑셀 매크로 (VBA) 파일을 만들 때 결국 가장 중요한 것은

① 변경을 가할 대상을 “선택” 하고

② 선택한 대상을 “가공” 한다

일 것인데, 이 Range 및 Cells 에 대한 내용만 정확히 이해해도 대상을 “선택” 하는데 큰 도움을 얻을수 있습니다.

필요한 “가공“은 매크로 기록의 기능과 함께 활용한다면 급할 때 기능 구현은 가능하고, 또 공부해 가기에도 큰 도움을 받을 수 있습니다.​​

예제로 사용된 파일은 다음과 같습니다.

3. 엑셀 매크로 (VBA) 관련 추천 도서 & 사이트

말이 나온 김에 제가 VBA를 만들면서 막히거나 참고자료가 필요할 때마다 찾는 책과 사이트를 소개합니다.

1) Mastering VBA for Microsoft Office

시중에 찾아보면 VBA를 다룬 책은 상당히 쉽게, 많이 찾아볼 수 있습니다. 하지만 100이면 100 엑셀 VBA 만을 다루고 있습니다. 이왕 VBA의 세계에 들어오기로 마음 먹으셨다면 엑셀 VBA 뿐만 아니라, 다른 Office 군에도 활용 가능하게 두루 섭렵해 보시길 추천합니다.

엑셀 VBA 뿐만 아니라 다른 Office 군에 대한 VBA에 대해서도 꽤나 다양한 제안을 해주는 책으로 위의 Mastering VBA for Microsoft Office를 추천합니다. ​

저는 아마존 서점에서 Kindle 버전으로 사서 제 전자책 단말기에 보관해 두곤 막힐 때 마다 찾아 보고 있습니다.

기초를 한번 다져본다는 생각이 있으실 경우 MS Office 전반적인 기능 관점으로 한번쯤 보시길 강력 추천합니다.

VBA의 맨처음 기초에서 부터 각 Office 프로그램별 활용의 중급 예까지 소개되고 있어서 입문서로 이만한 교재도 많지는 않은듯 합니다.

다만…. 영문 원서의 압박은 함정입니다. 영어가 짧은 제게는 멘붕의 시작이면서 강력한 도전 이라능…

2) MS Office 공식 VBA 개발자 사이트

Excel Visual Basic for Applications (VBA) reference Conceptual overviews, programming tasks, samples, and references to help you develop Excel solutions.

위 링크는 MS Office 공식 VBA 개발자 사이트 입니다. VBA 관련 많은 Reference가 제공되고 있습니다.

주요 기능별로 설명도 잘 되어 있고, 예시도 많으니 예시 위주로 보시고 필요한 내용이 나오면 복/붙 하시길 추천합니다.

개발의 시작은 복/붙에서 시작된다고 보시는게 좋습니다.

선량한 개발자 선배들이 만들어 놓은 오픈된 훌륭한 소스를 가져와서 내게 필요한 부분만 살짝 바꿔서 활용하는 것 그것이 바로 잔머리의 시작이 아닐까요?

이 사이트 또한 영어의 압박이 심하긴 하지만, 예시 위주로 찾아보면 왠만한 문제의 답은 다 얻을 수 있는 듯 합니다.

그 외에도 추천하는 것은 Google 검색인데, 가능하면 영문으로 검색해 보기를 추천합니다.

사실 우리 한국인들은 대부분 영어 울렁증이 있어서 장문의 영어글을 보면 어지러움을 느끼긴 하지만, 이것도 계속 하다보면 좀 익숙해 지더라고요.

올라온 글들을 100% 이해를 할 필요도 없고, 예제 코드 위주로 보면서 필요한 부분만 발췌해 가면 됩니다.

이 정도 목적으로만 영문 사이트를 검색한다면 중/고등학교 기간동안 갈고 닦은 독해 실력으로도 꼭 필요한건 다 할 수 있습니다.

4. 엑셀 매크로 (VBA) 에디터

VBA가 타 프로그래밍 언어에 비해 처음 시작하기 좋은 점은 이미 office 프로그램 안에 에디터가 내장되어 있고, 활용하기 좋다는 점일것입니다.​

1) 에디터 설정

대부분의 프로그램을 사용할때 모두 그렇겠지만, 나에게 맞는 옵션을 선택해 두는 것이 좋습니다.

VBA에서도 마찬가지로 처음 실행하면 도구 → 옵션에서 나에게 맞는 환경을 맞춰 주는 것이 좋습니다.

처음 VBA를 접하고 공부를 시작한다면 먼저 옵션 → 편집기의 “변수 선언 요구”에 체크를 해 두는 것을 추천합니다.

(아마도 처음 Default 설정은 체크인것으로 알고 있는데, 기억이 가물가물 합니다. ㅠ.ㅠ)

이 체크 박스가 체크가 되어 있으면 모듈, 단추 등의 새로운 개체가 추가될 때마다 각 개체의 처음에

” Option Explicit “

라는 구문이 추가됩니다. (사실 이 체크박스에 체크를 하지 않고, 개체마다 위의 구문을 입력해도 같은 효과가 납니다.) 이 구문의 뜻은 프로그램 중간에 사용되는 모든 변수는 변수로 선언이 되어 있어야 사용이 가능하다는 의미입니다.

​엑셀 VBA를 많이 다뤄 보신 분들은 아시겠지만, 어떤 새로운 변수를 사용하게 될 때마다 소스에

” Dim 어쩌구 저쩌구”

하는 형태로 변수를 선언해 주고 코딩을 시작하는 것을 보셨을 것입니다.

​”변수 선언 요구”옵션이 선택되어 있을 때는 변수가 선언되지 않은 내용을 사용하려고 하면 에러메시지가 발생하며 컴파일이 되지 않습니다.

이 점은 경우에 따라서는 불편한 부분도 있는데, 사실 프로그래밍을 처음 시작할 때 가장 많이 하는 실수가 변수 및 구성원명 입력 오타이기 때문에 이런 부분을 바로잡아줄 수 있는 옵션은 최대한 활용하는게 좋습니다.

​추가로 제가 사용하는 잔머리 팁중 하나는 변수를 선언할 때는 일부로 대/소문자를 섞어서 선언해 두고, 프로그래밍 소스를 입력할때는 소문자로만 입력합니다.

그러면 줄바꿈을 할때 내가 변수명을 정확히 입력하였다면 처음 선언하였던 대/소문자가 섞인 변수로 바뀌게 됩니다.

이를 통해 작게나마 나도 모르게 변수 입력시 오타는 없었는지를 2중으로 확인하는데 사용합니다.

​옵션 창중 편집기 형식 부분은 제가 보고 싶은 편집기 형식으로 변환하여 보이게 설정하는 영역입니다.

저 같은 경우 눈이 약한 편이어서, 대부분의 프로그램을 다크모드로 사용하고 있습니다.

VBA에서도 마찬가지 인지라 검은 바탕에 흰글씨 위주의 화면 구성을 위해 색구성을 편집기 형식에서 조정하여 사용하고 있습니다.​

2) 직접 실행 창과 조사식 창 그리고 중단점

프로그램을 만들어 실행하고 수정할 때 ​가능하면 필요한 기능을 최대한 잘게 쪼개서 부분 부분 실행하고, 다듬는 것이 좋습니다.

실제로 여러 기능이 복합적으로 구현되는 긴 소스를 만들때 한번에 테스트하고 오류를 수정하려고 하면 어디가 문제인지 찾기가 정말 어렵기 때문입니다.

부분 부분 실행해 보고 중간 체크를 하기 위해서 자주 사용하는 기능이 중단점, 직접 실행창, 조사식 창입니다.

​중단점은 소스에서 실행도중 멈추고 하고 싶은 줄의 왼쪽 빈칸에 마우스 클릭을 하면 설정 됩니다.

직접 실행창은 소스창 아래에 들어가 있고 없을 경우에는 보기 → 직접 실행창을 클릭하여 표시 되게 해 줄 수 있습니다.

위에 살펴본 소스의 중간에 들어있는

Debug.Print 어쩌구 저쩌구

하는 구문은 직접 실행창에 어쩌구 저쩌구에 대한 내용을 인쇄하라는 명령어로, 중간 실행 과정에서 중간 값들이 어떻게 나오는지를 확인할 수 있습니다.

​조사식 창은 보기 → 조사식 창을 클릭하여 띄울 수 있는데, 중단점에서 중단했을 때 그 시점에 자세한 정보를 보고싶은 개체를 드레그 & 드랍 하면 관련 정보를 상세하게 볼 수 있습니다.

이들 기능을 잘 활용하여 중간 중간 결과를 확인해 가면서 내가 원하는 방향으로 프로그램이 흘러가는지를 보면서 확인하면 내게 필요한 기능을 구현하는데 많은 도움을 받을 수 있습니다.

5. 잔마왕 스타일의 엑셀 매크로 (VBA) 공부법

마지막으로 제가 엑셀 매크로 (VBA)를 포함하여 VBA를 공부했었던 방법을 공유합니다.

무슨 일이든 직접 하다보면, 각자 자기에게 맞는 방법이 있습니다. 제가 엑셀 매크로 (VBA)를 접하고 공부했던 스타일의 공부 방법을 소개합니다. (제 스타일이고, 정석과는 거리가 있습니다. 참고만 하세요)​

저는 일단 뭐든 새로운 것을 익히거나 시작할 필요가 있을 때에는 책부터 사는 편입니다. 가능하면 기본기가 충실하게 정리된 책을 골라서 책꽂이에 꽂아 둡니다(요즘은 대부분 전자책으로 구매해서 전자책 단말기에 저장해 둡니다.).

​책을 보면서 책에 있는 예제를 따라해 보기도 하지만, 그보다는 내가 구현하고 싶은 기능을 중심으로 일단 부딪혀 봅니다.

구현이 필요한 기능을 최대한 잘게 쪼개서 부분 부분 실행이 되게 만든 다음 코드 짜고 실행해 보고 코드짜고 실행해 보고 하면서 제대로 돌아가는지 확인하여 소스를 만들어 나갑니다.

(제가 운영하는 블로그 및 유튜브 채널에서의 영상은 처음부터 끝까지 단번에 코드를 써가는 것처럼 보이지만, 편집의 힘입니다. 영상 만들기 전에 보통 1~2일정도 씨름을 하면서 코드를 완성해 두고 영상 촬영에 들어갑니다.)

​이 때 필요한 기능들, 잘 모르겠는 기능들이 있으면 사두었던 책을 뒤적이며 필요한 부분을 찾아보고, 구글링을 통해 프로그래밍 선배들의 좋은 소스들을 복/붙 합니다. (복/붙은 잔머리계의 진리요 사랑입니다.)

이상으로 저 나름의 엑셀 VBA를 처음 시작하는 분들을 위한 가이드 라인을 정리해 봤습니다.

쓰다보니 상당히 긴 글이 되네요… 위의 글들도 실제로는 제가 운영하는 유튜브 채널과 네이버 블로그에 과거 올렸던 내용들이긴 한데, 한번에 정리하는 기회를 만들어 보고자 다시 정리해 봤습니다.

VBA를 처음 시작하고자 마음먹으신 분들에게 조금이라도 도움이 되면 좋겠네요.

다음 글에서는 VBA를 익힐 때 처음에 익혀두면 도움이 될만한 내용을 좀더 자세히 알아보겠습니다.

엑셀 매크로(VBA) 시작하기 (2) 엑셀 매크로 (VBA)를 처움 다루기 시작할때 가장 먼저 익힐 3가지 키워드가 있습니다. 개체와 속성, 조건문, 반복문… 이에 대하여 알아보겠습니다.

엑셀 VBA를 활용하여 만든 매크로 예시로 아래의 링크글도 참고해 보실만 합니다.

엑셀 데이터 자동화 관리하기 (엑셀 매크로) 엑셀에서 데이터를 다룰 때에는 많은 양의 데이터를 다룰 때가 많습니다. 그렇다 보니 때로는 데이터 관리를 자동화 하여 사람 손을 덜 타게 하고, 빠른 처리가 될 수 있게 만들어 두면 도움이 되는 경우가 있습니다. 데이터 일괄 취합, 정리 등이 그 예입니다.

이미지 일괄 삽입, 일괄 저장 (엑셀 매크로) 엑셀 매크로를 이용하여 엑셀내에 이미지를 일괄 삽입하거나, 엑셀내의 이미지를 일괄 저장하는 매크로를 만들어 봤습니다.

VBA는 엑셀에만 있는 것은 아닙니다. PPT에서도 꽤 강력한 활용이 가능합니다. 관련 내용은 아래를 참고하시면 도움이 될듯 합니다.

PPT 노가다 방지 PPT 매크로 추가기능 모음 파워 포인트 문서 작업이 많고 편집 노가다가 많은 동료들을 위해 모둠 PPT 매크로 추가기능 모음을 만들었습니다. 설치방법 → 주요 기능 설명 → 각각의 매크로에 대한 설명으로 이어지니 활용만 하실 분은 주요 기능 설명 까지만 보시면 됩니다. PPT 매크로를 공부하시고 싶으신 분은 끝까지 보시면서 링크 글을 찾아가시면 도움을 얻으실 수 있습니다. 1. PPT 매크로 추가기능 설치…

매개변수가 있는 프로시져

04-1, 04-2 의 설명이 조금 어렵다면 댓글을 남겨주시고, 일단은 04-3으로 넘어가세요!

다음 코드를 먼저 보겠습니다.

Sub T() 이름 = “철수” Debug.Print (“안녕하세요”) Debug.Print (“셀에 이름을 입력하겠습니다.”) Debug.Print (“하압!”) Cells(1, 1).Value = 이름 이름 = “영희” Debug.Print (“안녕하세요”) Debug.Print (“셀에 이름을 입력하겠습니다.”) Debug.Print (“하압!”) Cells(1, 2).Value = 이름 End Sub

가만히 보니까 철수하고 영희하고 이름만 바뀌었지 인사하는 부분은 똑같네요.

이 부분을 좀 줄일 수 있습니다.

지금까지 생각없이 그냥 썼던

Sub T() … End Sub

이 묶음이 그 해답인데요. 일단 코드를 바꾸고 설명하겠습니다.

기본

Sub T() 이름 = “철수” Call 멘트 Cells(1, 1).Value = 이름 이름 = “영희” Call 멘트 Cells(1, 2).Value = 이름 End Sub Sub 멘트() Debug.Print (“안녕하세요”) Debug.Print (“셀에 이름을 입력하겠습니다.”) Debug.Print (“하압!”) End Sub

읽기만 해도 대충 감이 오시죠?

Sub 멘트() 라는 묶음으로 3줄짜리 코드를 하나로 묶었고, 이 묶음을 Sub T() 라는 실행묶음에서 불러와주고 있습니다.

직접실행창에 커서를 두고 실행버튼을 누르면 매크로 묶음이 T랑 멘트 두개가 나와 있는 게 있습니다.

T 한번 , 멘트 한번 실행해보세요. T 를 실행해서 F8 을 누르면서 코드 진행이 어떻게 되는지 한번 구경하는 것도 좋습니다.

코드 실행이 다음과 같이 되네요

아래 있는 Call 매크로 도 또 한번 Sub 매크로 로 가서 진행하고 다시 돌아오죠?

반복문, 조건문과 같이 실행의 순서를 바꿔주는 친구네요!

정식으로 소개하겠습니다.

프로시져 는 코드를 묶어주는 친구입니다. 위에서 봤던 것처럼 여러번 반복되는 코드를 묶어서 반복을 피하고 싶을 때 쓸 수 있습니다. 이렇게 묶어주면 수정도 한번에 할 수 있겠죠?

프로시져에는 Sub프로시져와 Function프로시져가 있습니다. 그 중 Sub프로시져를 배웠네요. 문법은 다음과 같습니다.

Sub 프로시져이름(매개변수1, 매개변수 2, …) 프로시져 내용 .. End Sub

프로시져이름은 짓고싶은대로 지으시면 되고, 그 이름으로 다른 프로시져에서 불러올 수 있습니다.

잠깐 못보던 매개변수가 끼어들어가 있네요. 매개변수를 살펴보겠습니다.

매개변수가 있는 프로시져

T 프로시져만 다시 보겠습니다.

Sub T() 이름 = “철수” Call 멘트 Cells(1, 1).Value = 이름 이름 = “영희” Call 멘트 Cells(1, 2).Value = 이름 End Sub

Cells(1,1).Value = 이름 , Cells(1,2).Value = 이름 도 뭔가 비슷하긴 한데, 반복을 줄이기 위해서 그대로 묶어버리기에는 차이점이 있어서 좀 아쉽네요.

이런 차이점을 전달해 줄 수 있는 친구가 매개변수입니다.

코드를 다음과 같이 고쳐보겠습니다.

Sub T() 이름 = “철수” Call 멘트(1, 이름) 이름 = “영희” Call 멘트(2, 이름) End Sub Sub 멘트(i, 이름) Debug.Print (“안녕하세요”) Debug.Print (“셀에 이름을 입력하겠습니다.”) Debug.Print (“하압!”) Cells(1, i).Value = 이름 End Sub

지역창을 켜놓고 F8을 하나씩 실행시켜볼까요?

첫번째줄에서 멘트() 를 불러온 순간 지역창을 보니까 i 가 1, 이름이 “철수” 로 되어있네요.

i의 1은 어디서 온 걸까요? 바로 Call 멘트(1, 이름) 에 서의 1 이 들어간 것입니다.

멘트() 에서 Cell(i, 1) 은 이 때 받은 i 를 그대로 사용해서 명령을 실행합니다.

멘트() 를 만드는 입장에서 보면, i 가 어떤 숫자일지 아직 모르지만, 밖에서 어떤 숫자가 들어오겠지 하고 일단 짜고 보는거죠!

그리고 그 값을 받아주는 친구가

Sub 멘트(i, 이름) 에서의 i, 이름 들 입니다.

얘네는 변수로서 계속 활용되는 값이기도 하고, Sub 멘트() 라는 프로시져와, 그 프로시져를 불러주는 바깥 프로시져에서 값을 받아서 전달해주는 매개자 역할을 하기 때문에 ‘매개변수’ 라고 부릅니다.

매개변수를 잘 활용하면 반복되는 코드가 조금 변해도 유연하게 대처 하며 줄일 수 있겠네요.

프로시져는 바깥의 상황은 전혀 모르고, 매개변수를 통해서만 값을 전달 받을 수 있기 때문에,

T() 를 다음과 같이 바꿔도 똑같이 작동합니다.

Sub T() 성명 = “철수” Call 멘트(1, 성명) Call 멘트(1, “영희”) End Sub

이해가 안 가시면 지역창을 켜놓고 F8을 한 단계씩 눌러보세요. 변수의 이름변화에 주목하세요.

1.바깥에서는 ‘성명’ 이라는 변수로 들어갔지만, 안에서는 ‘이름’ 이라는 변수(값이 “철수”인 )로 재활용 됩니다.

2.”영희” 라는 값을 바로 넣어줘도 멘트() 에서는 알아서 ‘이름’ 이라는 변수에 넣어주고 재활용하네요.

*매개변수는 맨 위에 소개해드린 것처럼 하나도 없을수도, 여러개가 있을 수도 있습니다.

지금까지 코드를 묶어서 반복을 줄이는 법에 대해서 알아봤습니다.

매개변수가 이해가 안 되셔도 일단은 위에 소개해드린 코드를 한번씩 실행해보시고 다음 장을 그냥 계속 봐주세요. 뒷 내용을 보다보면 앞 내용이 이해가 되기도 합니다.

엑셀 VBA 강좌(2): 엑셀 VBA 기초

이번 글은 엑셀 VBA 언어 기초에 대한 내용을 살펴본다.

이전 글에서 이어지는 내용이다.

엑셀 VBA 강좌(1): 엑셀 VBA 개요

목차

2. 엑셀 VBA 기초

2.1. 기본 환경 설정

VBA 관련 기능 사용을 위해서 먼저 엑셀 리본메뉴에 개발도구 탭을 보이게 설정한다. Excel 버전에 따라 보여지는 화면은 조금 다르지만 방법은 거의 동일하다.

엑셀을 실행하고 다음 단계를 진행하여 설정한다.

파일 > 옵션 > 리본 사용자 지정 > “개발 도구” 체크 > 확인 > 리본메뉴에 “개발 도구” 표시 확인

▼ Excel 2007, 2010에서 개발도구 보이게 설정하는 방법

Excel 2007, 2010에서 개발도구 보이게 설정하는 방법

▼ Excel 2013 이후 버전에서 개발도구 보이게 설정하는 방법

Excel 2013 이후 버전에서 개발도구 보이게 설정하는 방법

이것으로 기본 환경설정은 마쳤다.

2.2. 간단한 예제 따라하기

이론적인 내용에 들어가기 전에 엑셀 VBA를 이용하여 간단한 예제를 따라해 보자.

2.2.1. “Hello, World!” 출력하기

모든 개발 언어의 첫번째 예제(😉)인 “Hello, World!”를 화면에 출력해 보자.

개발도구 리본메뉴에서 “Visual Basic” 버튼을 클릭하거나, 단축키 Alt + F11 을 누르면 다음과 같이 VBE(Visual Basic Editor)가 나타난다.

VBE(Visual Basic Editor) 화면

여기에서 “보기 메뉴 > 직접 실행 창”을 클릭한다.

직접 실행 창 메뉴 클릭

다음과 같이 직접 실행 창이 표시된다.

직접 실행 창 표시

직접 실행 창에 다음 코드를 복사하여 붙여넣고 엔터키를 누른다.

MsgBox “Hello, World!”

“Hello, World!” 메시지 창이 나타난다. “확인” 버튼을 눌러서 닫자.

“Hello, World!” 메시지 출력

2.2.2. Cell에 값 입력하기

이번에는 시트의 특정 cell에 값을 입력하는 코드를 알아보자. 직접 실행 창에 다음 코드를 복사하여 붙여넣고 엔터키를 누른다.

Range(“B2”) = “직접 실행 창에서 입력”

다음과 같이 “B2” cell에 지정한 값이 입력되는 것을 확인할 수 있다.

직접 실행 창에서 cell에 값 입력

2.2.3. 파일 새로 만들기

이번에는 파일을 새로 만들어 보자.

Workbooks.Add

새로운 “통합 문서3″이 만들어 진다. 숫자는 엑셀이 실행된 이후 1씩 증가하는 새 파일의 번호이다. 실행환경마다 숫자는 다를 수 있다.

파일 새로 만들기 결과

여기까지 환경설정과 간단한 예제를 따라해 보았다. 엑셀 VBA를 처음 접해보는 분들은 꼭 한번 해보기 바란다.

다음에는 엑셀 Object Model에 대해 살펴보겠다.

엑셀 VBA Editor 열고 코드 입력하기

엑셀에서 VBA를 활용하려면 VBA Editor 창을 열고 코드 입력창에 코드를 입력합니다.

그럼 VBA Editor 창을 열고 코드를 입력하는 방법에 대해 알아보겠습니다.

그전에 리본메뉴에 개발도구를 표시합니다.

개발도구 표시하기(클릭)

VBA Editor 창 열기 (3가지 방법)

1. 단축키 : Alt + F11

2. [개발도구] – [Visual Basic] 버튼클릭

3. 시트탭에서 우측마우스 클릭 – [코드보기] 선택

※ 코드보기를 선택하는 경우는 해당시트의 코드창이 열립니다.

VBA Editor 창 구성

1. 메뉴바 : 상단 메뉴바

2. 프로젝트 탐색창 : 좌측 상단

3. 속성창 : 좌측하단

4. 코드 이력창

5. 직접실행창 : 코드입력창 하단좌측

6. 지역창 : 코드입력창 하단 중앙

7. 조사식창 : 코드입력창 하단 우측

위 창들은 [메뉴바] – [보기] 에서 생성 또는 제거 할 수 있습니다.

코드입력

[모듈]이나 [폼]은 [메뉴바] – [삽입]에서 추가 할 수 있으며,

코드는 통합문서의 Sheet와 현재 통합문서, 폼, 모듈의 코드입력창에서 입력할 수 있습니다.

VBA Editor 창에 대한 세부적인 사항과 본격적으로 코딩하는 방법에 대해서는 차츰 알아보도록 하겠습니다.

엑셀로 코딩을? – Prologue. 엑셀 프로그래밍이 뭔데?

엑셀로 코딩을? – Prologue. 엑셀 프로그래밍이 뭔데?

안녕하세요!

저는 투도스의 떠오르는 샛별 “봄이” 입니다.

여러분들과 소통하게 되어서 두근두근 설레고 떨리고 그러네요.

저는 오늘부터 “프로그래밍” 카테고리에서

“엑셀로 하는 프로그래밍”이라는 주제를 가지고 포스팅을 하게 되었는데요.

2주에 한 편씩 총 4편으로 나누어 포스팅을 할 예정입니다.

엑셀 프로그래밍이 익숙한 분들도 있으시겠지만

엑셀은 들어봤어도 ‘엑셀로 무슨 프로그래밍?’ 하시는 분들도 있을 거 같아요.

있으시죠? 제가 그렇습니다. 저도 좀 생소한데요,

이번 기회를 통해 엑셀 프로그래밍이라는 새로운 도전을 한번 해보려구요!

이미 디지털 시대라고 하지만 점점 더 발전하고 있는 지금!

IT 교육의 중요성이 점점 커지고 있는데요. 이에 대한 대비인지 이미 몇몇 중학교는 IT교육 의무화를 실시하고 있고, 2018년부터는 모든 초등학교, 중학교, 고등학교에서 IT교육 의무화를 실시한다고 하네요.

이런 상황에서 웬 엑셀 프로그래밍인지 궁금하시죠?

지금도 가득가득 하지만 미래엔 지금보다도 더 많은 소프트웨어가 생활의 대부분을 차지하게 되고 그 중요성 및 필요성이 더욱 더 커지게 될 텐데요. 무조건 의무 교육을 진행 하는 것이 과연 좋은 결과만을 가져 올까요 ?

각자의 창의적인 아이디어를 더 재미있게, 더 잘, 나만의 생각으로 만들어 낼 수 있도록 하는 프로그래밍적 사고 를 가지게 하는 것이 중요한데, 그런 프로그래밍적 사고를 갖기 위해서 꼭 C언어나 자바 같은 언어를 배워야 할 필요는 없다고 생각합니다.

대신에, 누구나 접근하기 쉽고, 또 쉽게 배울 수 있는 엑셀은 어떤가요?

그래서!!!! “엑셀로 하는 프로그래밍” 입니다! 제가 준비한 포스팅은입니다!

‘나도 프로그래밍적 사고가 부족한데? 없는 거 같은데?’ 이런 생각을 하고 계셨다면! 좋습니다!! 엑셀로 하는 간단한 코딩으로! 저와 프로그래밍적 사고를 함께 넓혀가 보시죠?

엑셀 프로그래밍이란? “VBA”

엑셀은 익숙하지만 엑셀 프로그래밍은 처음 듣는 분들도 계실 텐데요.

엑셀을 사용하다 보면 VBA라는 용어 보다는 매크로를 조금 더 자주 접하게 됩니다. VBA를 알기에 앞서 먼저 매크로에 대해 알아 보고 갈까요?

매크로

자주 사용하는 일련의 명령어를 묶어서 하나의 키 동작이나 메뉴로 실행되도록 만든 것 즉, 여러 번 해야 할 일을 간단히 한 번에 수행하기 위해 사용하는 기능

그럼 VBA는 뭘까요?

VBA (Visual Basic for Application) MS-Office 응용 프로그램(파워포인트, 워드 등)에서 매크로를 기록하는 데 사용하는 프로그래밍 언어

VBA는 주로 이럴 때 사용 됩니다.

하나, 복잡하거나 반복적인 작업을 하나로 묶어서 재사용 할 때. 둘, 엑셀 함수로 지원되지 않는 계산이나 복잡한 계산식을 쉽게 사용하고자 할 때. 셋, 엑셀 기본 기능으로 처리할 수 없는 새로운 기능을 만들어 사용할 때. 넷, 엑셀을 기본으로 전문적인 프로그램을 개발할 때.

저는 이 엑셀 프로그래밍을! 여러분과 함께 프로그래밍적 사고를 키워나가기 위해 배워보고 싶어요. 그래서 문제와 답을 같이 보는 것이 아닌, 뭐라도 무작정 만들어보는! 프로그래밍적 사고를 기를 수 있는! 그런 코딩을 지금부터 해보려고 합니다.

다음 포스팅부터 “학점관리 프로그램” 을 만들기 시작할 거예요.

갑자기 왜 학점관리 프로그램이야, 나 엑셀 프로그래밍 하나도 모르는데!

저도 모릅니당. 괜찮아요. 그냥 무작정 시작하는 거죠. 학점관리 프로그램이니까 이 글을 보고 계신 분들 중 대학생인 분이 계시다면 도움이 되실 거라고 생각해요. 저랑 같이 시작 하시면 됩니당!

같이 하실거죠?

부족한 점도 많을 텐데, 그래도 최대한 알찬 내용으로! 열심히 준비했으니까 많이많이 기대해 주세용!

혹시, 엑셀 프로그래밍 기본 구성 요소에 대해서 하~나도 모르시는 분은 요기 가셔서 한번 슥 보시고 오세요. “엑셀 프로그래밍 기본 구성 요소!”

그럼 금방 또 보는 거로! 다음 포스팅 때 만나요~

VBA 엑셀 코딩 #01 모듈 삽입 , Sub프로시저 만드는 방법 ( Sub 프로시저 , Function 프로시저 , Property 프로시저 )

반응형

VBA 엑셀 코딩 #01 모듈 삽입 , Sub프로시저 만드는 방법

이번에는

VBA의 기초

“모듈 삽입 및 Sub프로시저 만드는 방법”에 대해 설명해드리려 합니다.

1. Visual Basice 열기

1. Visual Basice 열기

먼저 코딩을 하기 위해

코딩 창인 ‘Visual Basic’을 열어줍니다.

” 개발 도구 “탭에 있는

‘Visual Basic’을 눌러 주시면 됩니다.

간편한 단축키로는 “Alt + F11” 을 누르시면 됩니다.

2. 모듈 삽입하기

2. 모듈 삽입하기

코딩 창을 열면

위와 같은 창이 열리게 되는데요,

저희는 이제 여기서 “삽입”창에 있는

‘모듈’을 눌러서 모듈을 삽입해 줍니다.

3. Sub 개체속성 생성 3. Sub 개체속성 생성

3. Sub 개체 속성 생성

모듈을 삽입하면

위처럼 아무런 코딩이 없는 빈 창입니다.

이제 이 위에 코딩을 해주면 되는데요,

이제 프로시저를 생성하기 위해 “Sub 개체 속성()” 입력합니다.

입력하고 엔터를 누르면 자동적으로 ‘End Sub’라는 문구가 생성 됩니다.

**추가 설명

프로시저는 Sub 프로시저, Function 프로시저 , Property 프로시저로 구분되는데

Sub 프로시저는 매크로로 기록된 프로시저와 같은 것이고,

Function 프로시저는 함수를 만들 때에 상요하는 프로시저,

Property 프로시저는 새로운 개체를 선언할 때에 사용합니다.

4. 프로시저 코딩 및 실행 4. 프로시저 코딩 및 실행

4. 프로시저 코딩 및 실행

프로시저를 코딩하도록 하겠습니다.

Range(A1″)을 입력한 후,

‘.’을 찍으면 여러 문구가 나오게 됩니다.

저희는 값을 집어넣기 위해 .Value = 100을 입력합니다.

그리고 위에 ▷(실행) 버튼을 눌러 실행 해줍니다. (단축키로 F5 입니다. ^.^)

5. 프로시저 실행 확인

5. 프로시저 실행 확인

이제 엑셀 시트로 돌아와 보면

A1라는 범위에 값(Value)이 100이 찍혀 있는 것을 확인해 보실 수 있습니다.

(화면 전환으로 엑셀 시트로 돌아가실 수 있습니다.

단축키로는 코딩 창을 열었던 방법인 “Alt + F11” 을 누르시면 됩니다. >.<) 6. 프로시저 추가 코딩하기 6. 프로시저 추가 코딩하기 모듈 삽입 및 프로시저는 위와 같은 방법으로 VBA에서 코딩할 수 있습니다. 그럼 이제 프로시저에 추가로 코딩을 해보도록 하겠습니다. Range("A1").Value = 100 (A1의 값을 100으로 정한다.) Range("C2:C10").Value = "모듈프로시저" (C2~C10의 값을 "모듈프로시저"라고 정한다.) Range("D3").Value = Range("A1").Value + 77 (D3에 값에 A1의 값에 더하기 77을 해서 정한다.) Range("D3").Font.Color = vbRed (D3의 폰트 색을 빨강으로 정한다.) ActiveSheet.Name = "모듈프로시져" (사용한 시트의 이름을 "모듈프로시저로 정한다.) 7. 추가 코딩 확인 7. 추가 코딩 확인 6번 사항 데로 코딩한 후, 다시 실행을 눌러보면 위 사진처럼 엑셀 시트에 자동으로 입력된 것을 보실 수 있습니다. A1의 값이 100이고, C2~C10의 값이 모듈 프로시저이고, D3의 값은 177로 되어있고 (100 + 77) D3의 글자 색이 빨강으로 되었고, 아래 시트 이름을 보면 시트 이름이 "모듈 프로시저"로 되어있는 것을 확인하실 수 있습니다. >.< ~~~~~~~ 반응형

[Excel VBA] 기초 VBA문법🌞

반응형

반갑습니다 🙂

오늘은 VBA코드를 작성할 때, 가장 기초적인 문법에 대해 설명드리고자 합니다!

먼저 프로그래밍의 기초인 자료형에 대해 알아보아요!

자료형

자료형이란? data type, 컴퓨터 과학과 프로그래밍 언어에서 실수, 정수, 불린 자료형 따위의 여러 종류의 데이터를 식별하는 분류,

즉, 여러 종류의 데이터를 식별하는 분류를 말한다.

자주 쓰는 자료형은 굵은 글씨로 표시했어요!

자료형은 VBA뿐 아니라 많은 언어에서도

비슷하게 정의되니 알아두면 좋아요 ㅎㅎ

변수 정의 형식

다음은 VBA에서 변수를 정의하는 방법이에요!

[키워드] 변수명 [As 데이터형]

하나씩 살펴보도록 할까요?

.

.

.

①변수 선언 키워드 : 키워드는 기본적으로 파란색으로 표시되고 어떤 키워드를 사용해 어느 위치에 선언하는지에 따라 변수의 사용범위가 결정됨

키워드에 따른 변수에 범위는 다음과 같아요!

보통은 Dim 을 많이 사용합니다!

서술된 부분은 많이 어렵게 느껴지지만,

필요할 때 마다 실습해보면 이해할 수 있을 겁니다 :>

②변수명: 변수명은 사용자가 임의로 정의하는 것으로, 다음 규칙에 따라 작성, 일반적으로 변수명은 기능을 알아볼 수 있는 단어를 섞어서 사용

1. 첫 번째 문자는 반드시 숫자가 아닌 문자여야 함.

2. 밑줄(_) 이외의 특수 문자(., !, @, #, $, -, [ 등)를 사용할 수 없음.

3. 길이는 255자를 넘을 수 없음.

4. Visual Basic의 함수, 명령문, 메서드와 같은 키워드를 이름으로 사용할 수 없음.

5. 같은 수준의 범위에서는 이름을 중복하여 지정할 수 없음.

③데이터형: 변수에 담길 자료의 크기는 종류를 고려하여 적당한 데이터형을 지정

예시

마지막으로

너무 중요하지만 가끔씩 헷갈리는 행/열에 대해 설명드리고자 해요!

VBA를 하다보면

엑셀에서 시트를 참고하는 부분이 많은데

아는 내용이지만

가끔씩 헷갈려서 잘못 적는 경우가 많아요 🙁

적힌 (행,열)을 유심히 봐주세요!

각각의 셀을 ActuveCell이라고 부릅니다!

이 셀이 위치한 곳을 표현하는 방법은 Cells(행,열)로 표현합니다!

표현하는 방법에는 3가지가 있어요!

보통은 첫번째 방법을 많이 사용합니다!

열을 알파벳으로 적을 때에는 “”(큰 따옴표)를 주의해야해요!

즉, 변수에 값을 넣거나 해당 셀에서 값을 가져올 때에는 다음과 같이 표현할 수 있습니당!

예시

많은 도움되셨다면 ❤ 와 구독 부탁드릴게요!

🙂

반응형

칼퇴를 부르는 엑셀 매크로와 VBA 사용기

정규화된 양식에서 조금만 벗어나도 에러가 발생한다는 단점이 있다.

정규화된 양식에서 조금만 벗어나도 에러가 발생한다는 단점이 있다.

VBA를 사용하기 위해서는 엑셀의 개발 도구 -> 삽입 -> 명령 단추를 누른다. 그러면 ‘CommandBotton’이라는 박스가 생기는데 이 박스를 클릭하면 코드를 입력하는 곳이 나온다. 이곳에서 그동안 매크로를 사용하며 알게 된 코드를 넣거나 Stack Overflow에서 다운로드한 코드를

적절하게

수정해서

저장하면 된다. 이제 당신은 서식을 쓰지 않아도 된다. 한 번만

제대로

코딩

키워드에 대한 정보 엑셀 매크로 코딩

다음은 Bing에서 엑셀 매크로 코딩 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 1시간만 투자하면 엑셀 메크로 프로그램을 만들고 VBA로 편집할수있는 방법을 알려드릴께요 !

  • 엑셀메크로
  • 엑셀메크로프로그램
  • 엑셀메크로 강의
  • 메크로 강좌
  • 엑셀VBA
  • 엑셀VBA강의
  • 엑셀메크로VBA
  • VBA프로그램 강좌
  • 엑셀메크로VBA기초배우기

1시간만 #투자하면 #엑셀 #메크로 #프로그램을 #만들고 #VBA로 #편집할수있는 #방법을 #알려드릴께요 #!


YouTube에서 엑셀 매크로 코딩 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 1시간만 투자하면 엑셀 메크로 프로그램을 만들고 VBA로 편집할수있는 방법을 알려드릴께요 ! | 엑셀 매크로 코딩, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  보헤미안 랩소디 악보 | Bohemian Rhapsody/Queen💋노래방 반주*기타 코드 악보*가라오케💖Karaoke*Sheet Music*Chord*Mr 24316 명이 이 답변을 좋아했습니다

Leave a Reply

Your email address will not be published. Required fields are marked *