엑셀 VBA 기초스터디 첫주|↓↓↓↓↓↓↓↓↓↓

오빠 두 엑셀 VBA 기초 4주 완성 첫째주 2022년 7월 2일 토요일

위키백과 비주얼 베이직 포 애플리케이션(VBA)

많이 사용하는 프로그램 언어 순위 PYPL Popularit Yof Programming Language Index: 구글에서 많이 검색된 언어=많이 사용하는 언어 단연 파이슨이 1위.VBA는 프로그램 언어 중 15위.

PYPL popularity of programming languagepypl.github.io

왜 VBA를 배워? 파이썬 할래? 주변에서 파이썬을 배우라고 한다. (R은 자격증을 준비할 때 잠시 배웠다. 현재는 머리에 아무것도 남아 있지 않다.) 파이썬을 배우는 것은 쉽지 않다.나는 Sales Operation인데 개발자도 아닌데 파이썬까지 해야하나?

일단 사용 목적만을 고려해 보자.단순히 엑셀 자동화를 위해서라면 VBA만 배워 실무에 활용하자.Phython VBA 개발 환경 설치(atleast 2 hours) Print, 변수, 조건, 함수-리스트-반복문 등(atleast 8 hours) 배포, 패키징, 빌드… 할 일이 많다.

반드시 엑셀을 실행해야 사용가능 제공되는 라이브러리가 제한적 외부 Application 제어가 어려운 VBA 실행 시 실행 취소 불가능

엑셀만 있으면 된다

코딩을 공부하는데 꼭 필요한 3가지 빠른 영타 속도도 직접 해볼 것이 분명한 목적

코드몽키?내 실력 없는 무늬만 프로그래머인 단순 코딩 노동자를 가리키는 말.

  1. 엑셀에서 개발 툴탭 꺼내기
  2. ✅엑셀 탭 리스트에 ‘개발 툴’이 있는지 먼저 확인한다.

✅ 개발 도구 탭이 없는 경우 마우스 오른쪽 클릭 → “리본 메뉴 사용자 지정” → “개발 도구” 체크

→ 매크로 편집기의 등장

3. 매크로를 포함한 통합 문서로 저장하기

*.xlsx→*.xlsm으로 변환 저장해야 매크로를 사용할 수 있다.

4. 다시 파일을 열면 보안 경고가 나오는데 콘텐츠 사용 클릭

차단 해제 방법 파일을 열지 않고 파일 아이콘에서 마우스 오른쪽 클릭 → 속성 → 맨 아래 블록 해제

파일 실행 시 안내 메시지를 표시하는 매크로 실습 1.

현재 통합문서 더블클릭 → 우측 선택 상자에서 Workbook 선택 → msgbox ‘어서 오세요!’ 입력

Priviate Sub Workbook_Open() msgbox “어서와!” End Sub

workbook을 열 때, 어서 오세요! 라는 메시지를 팝업시키라는 명령문

시트명을 출력하는 매크로 실습 2.

현재 통합문서 더블클릭 → 왼쪽 선택 상자에서 Open 대신 Sheet Activate 찾아 클릭 → msgboxsh.name 입력

Priviate Sub Workbook_Sheet Activate (ByVal Sh As Object) msgbox sh.name End Sub

즉 sheet을 activate(열면) 메시지를 표시하는 데 sheetname을 보여 달라는 뜻이다.

엑셀매크로기록기사용방법(매크로녹화)실습3.개발툴탭→코드리본내매크로기록기아이콘클릭

→ 매크로 기록창에 매크로 이름 ‘MyTest Macro1’, 매크로 저장 위치 ‘현재 통합 문서’

  • 참고: 매크로 저장 위치를 ‘개인용 매크로 통합 문서’로 선택하면 해당 매크로가 개인 PC에 저장된다.

→ 매크로 편집기에 모듈이 생기는 Sub My Test Macro1 ( ) My Test Macro1 매크로 EndSub

→ 왼쪽에 있는 엑셀로 수행하는 모든 작업이 오른쪽에 기록된다.

매크로 녹화를 중지하려면 실습 4.

방법1. 개발 툴탭-코드리본에서 기록중지 아이콘을 클릭

방법2. 엑셀파일 화면 맨 왼쪽 하단에 기록중지 아이콘을 클릭

표에서 빈셀을 찾아 노란색으로 바꾸고 미제출을 입력하는 매크로 실습 5. 실습 3에서 수행한 대로 매크로 기록기를 사용하여 녹화한다.

엑셀에서 Ctrl+A표 전체를 선택하고 홈 탭-편집 리본 검색 및 선택 클릭-이동 옵션-빈셀

빈셀만 선택되면 -노란색으로 색채표시 -F2를 누른 후 ‘미제출’이라고 적고 Ctrl+Enter-빈셀 부분 모두 미제출로 입력된다.

그리고 매크로 녹화를 중지한다.

녹화된 매크로 수정 실습 6.

매크로 편집기에서 이미 녹화된 매크로 중 불필요한 내용을 지우고 필요한 매크로 기록만을 남겨둔다.

‘ 작은 따옴표로 쓴 글은 매크로에 영향을 주지 않고 그 매크로에 대한 설명(주석)을 작성할 수 있다.

명령문이 헷갈릴 수 있으니 설명을 적어두면 초보자에게 도움이 된다.

수정한 매크로를 확인하려면

엑셀 파일을 원래대로 되돌리고 매크로 편집기에서 재생 버튼을 누른다.또는 F5

매크로 실행 버튼 작성 실습 7.

엑셀로 도형을 삽입하고 텍스트 편집을 이용하여 도형에 텍스트를 입력한다. 도형에 ‘빈셀 확인’이라고 입력한다.

도형에서 마우스 오른쪽 클릭→’매크로 지정’ 선택→매크로 이름 목록에 자신이 만든 매크로 선택

Currentregion에서 동적 범위 만들기 실습 8. Range(“B2:G15”)Select는 Range가 고정되어 있고 표에 데이터가 추가되어도 범위가 업데이트되지 않는다.

Currentregion에서 동적 범위를 설정하기 위해 아래의 명령문을 입력하면 표에 데이터가 추가되더라도 범위가 Ctrl+A를 누른 것처럼 자동으로 선택된다.

Sub Test 2 ( ) range (“B2”) Current Region. Select End Sub

Test2에서 테스트한 것을 My Test Macro1에 명령문 range(“B2”).Current Region.Select 를 복사하여 붙인다.

명령문 sub와 function의 차이 ❓ sub= subprocedure = 어떤 동작을 수행할 때 (실행문) ❓ function = 어떤 값을 결과적으로 출력해야 할 때 (출력문)

나만의 함수 만들기 실습9. 매크로 편집기로 My Sum이라는 함수를 만들어 보자.

Function MySum (num 1, num 2) MySum = num 1 + num 2 End function

MySum이라는 함수는 인수 2개가 각각 들어가게 한다는 뜻인데, MySum을 num1+num2로 정의했다.

엑셀에서 =My와 타이핑하면 MySum이 나온다. (오 똑똑하네) 인수를 1과 2를 넣으면 1+2가 되고 결과는 3이 된다.

예제 파일에서 비만도를 구하는 실습 10. 매크로 편집기로 BMI라는 함수를 만들어 보자.

Function BMI (Weight, Height) BMI = Weight / (Height / 100) ^ 2 End function

엑셀로 비만도열의 1셀로 =bmi를 타이핑해 보자.체중과 키를 인수로 넣으면 비만도가 자동 계산된다.

주민번호에서 성별을 추출하는 함수실습 11.

1-거시 편집기에서 ID_Gender라는 함수를 만들어 보자.명령문에는 Mid 함수 활용

FUNCTION ID_Gender(ID) ID_Gender=Mid(ID, 8, 1) End Function

2. 성별이 홀수라면 남자, 짝수라면 여자이므로 isodds, IF 함수를 사용하여 작성해 보자.

1단계 : 홀수이면 남자(TRUE), 짝수면 여자(FALSE)

2단계 : True이면 남성, FALSE이면 여성으로 IF 함수를 사용하여 명령문을 입력

If ID_Gender=True ThenID_Gender=”Men” ElseID_Gender=”Women” End If

나는 왜 안되는걸까? 노란색에 문제가 있다는 의미인것 같은데…

↓↓↓↓↓↓↓↓↓↓첫째주 스터디 숙제 Find Gender 함수 만들기

형도 선생님이 약간의 힌트를 준 것을 응용해서 Find Gender 함수를 만들어 봤다.

첫 번째 시도 – 실패!

컨닝 없이 제가 먼저 해본 거…

역시… 에러가 났어!한글자 깨짐현상이 있어서 미제출이 ???로 보이는 두번째 시도는 다른분들이 제출하신 숙제로… 컨닝했어.

한글 문자가 깨짐

한글 문자가 깨짐

안녕하세요~ 라라곰입니다. 유튜브 채널 오빠 두 엑셀에서 엑셀 VBA 기초공부를 시작했는데 매크로 편집기… blog.naver.com

error: Content is protected !!