강의 자료
- [라이브강의] 엑셀 VBA 4주 완성 특별 스터디 - 3강예제파일완성파일은 영상 하단 댓글 링크를 확인해주세요.
3주차 미션
미션 완성 코드는 영상 댓글의 완성파일을 확인하세요!
- [미션1] MyTextJoin 함수 만들기
- [미션2] 동적범위 DynamicRange 함수 만들기
- [미션3] 필터링 매크로 만들기
보충 자료
① Squence / MyTextJoin 함수 만들기 사전 미션
'----------------------------------------- '미션1) 나만의 Sequence 매크로 만들기 'Column로 시작열을 지정하고, Count로 순번 개수를 지정하면 '시작열의 1행부터 순번을 출력하는 매크로를 작성합니다. '예상풀이시간 : 3분 '----------------------------------------- Sub SequenceNumber() Dim Column As String '시작열 @ 예) "A", "B", "C", ... Dim Count As Long '출력할 순번 개수 @ 예) 5, 10,15 ... Dim i As Long ' For문 변수 '힌트1) Column = "A" '힌트2) Count = 10 '힌트3) For i = 1 To Count '힌트4) Range(Column & i).Value End Sub '----------------------------------------- '미션2) 나만의 Sequence 매크로를 동적으로 만들기 'InitCell로 시작셀을 지정하고, Count로 출력할 순번 개수를 지정하면 'InitCell을 기준으로 한칸씩 내려가며 순번을 출력하는 매크로를 작성합니다. '예상풀이시간 : 5분 '----------------------------------------- Sub DynamicSequence() Dim InitCell As Range '시작셀 @ 예) Range("A1") Dim Count As Long '출력할 순번 개수 @ 예) 5, 10 15 .. Dim i As Long 'For문 변수 '힌트1) Set InitCell = Range("A1") '힌트2) Count = 10 '힌트3) For i = 1 To Count '힌트4) InitCell.Offset(i-1).Value End Sub '----------------------------------------- '미션3) 나만의 TextJoin 함수 만들기 '문자를 병합할 범위를 Rng로 입력하고, 구분자를 지정하면 'Rng의 각 셀을 돌아가며 구분자로 병합하는 함수를 작성합니다. '예상풀이시간 : 7분 '----------------------------------------- Function MyTextJoin(Rng As Range, _ Optional Delimiter As String = ",") '@ 인수 설명 'Rng : 값을 병합할 범위입니다. 'Delimiter : [선택인수] 구분자입니다. 기본값은 쉼표(,)입니다. Dim r As Range 'For Each문 변수 Dim Result As String '결과로 출력할 문자열 '힌트1) For Each r In Rng '힌트2) If r.Value <> "" Then '힌트3) Result = Result & r.Value & Delimiter '힌트4) MyTextJoin = Left(○○○, Len(○○○) - 1) End Function
② 시트 이벤트 매크로 마스터 코드
Application.ScreenUpdating = False Application.EnableEvents = False If Not Intersect(Target, Range("셀주소")) Is Nothing Then '실행할 명령문 End If Application.ScreenUpdating = True Application.EnableEvents = True
수업 개요
- ----- 1교시 -----
- 지난주 배운 내용 복습00:00
- 신뢰할 수 없는 파일 / 잠재적인 보안 오류 해결09:27
- 사전미션1. 순번 만들기 매크로10:24
- 사전미션2. 셀을 지정해서 순번 만들기13:13
- 사전미션3. TextJoin 함수 만들기16:52
- 코딩은 "실패"하면서 배워야합니다24:56
- 범위 마지막 셀 찾는 매크로26:36
- DynamicRange 함수 테스트40:07
- ----- 2교시 -----
- 나만의 자동필터 매크로 만들기41:29
- 자동필터 매크로 동작원리46:15
- 잘못된 상황 가정 후, 문제 해결하기47:51
- 시트 이벤트 매크로 사용법 기초49:27
- 원본 데이터 순서가 달라도 필터링 되나요?51:02
- SelectionChange vs. Change 차이점51:19
- 중요! 이벤트 매크로 사용시 주의사항54:40
- 실시간 필터링 매크로 만들기57:29
- 오류가 발생하는 상황 가정해보기59:13
- ----- 3교시 -----
- 범위 초기화 매크로 동작원리59:57
- 범위 초기화 매크로 작성하기1:00:43
- 범위 초기화 매크로 테스트1:05:33
- DynamicRange 코드를 직접 수정하는 방법1:06:05
- 실시간 필터링 매크로 최종 테스트1:06:59
수업 요약
1. 나만의 Sequence & TextJoin 함수 만들기
오늘 강의에서는 이전 시간에 알아본 For문과 IF문을 활용하여 나만의 Sequence 함수를 만드는 방법을 알아봅니다.
이후 10줄 내외의 간단한 코드를 작성하여 나만의 TextJoin 함수를 만드는 방법을 알아봅니다.
2. 범위 자동인식 & 필터링 매크로 만들기
이후 시트에 사용된 마지막 셀을 자동으로 인식하여 원하는 범위를 동적으로 선태하는 DynamicRange 함수를 작성합니다.
이후 DynamicRange 함수를 활용하여 조건을 만족하는 값만 필터링하는 나만의 필터 매크로를 작성합니다.
3. 시트 이벤트 기초 & 실시간 필터링 매크로 완성
오늘 강의에서는 실무에서 가장 많이 사용되는 핵심 시트 이벤트 2가지의 차이점과 실전 사용법에 대해 알아봅니다.
이후 시트 이벤트와 필터링 매크로를 접목하여, 셀 안에 입력한 값을 실시간으로 필터링하는 자동화 서식을 완성합니다.
강의 자료
- [라이브강의] 엑셀 VBA 4주 완성 특별 스터디 - 3강예제파일완성파일은 영상 하단 댓글 링크를 확인해주세요.
3주차 미션
미션 완성 코드는 영상 댓글의 완성파일을 확인하세요!
- [미션1] MyTextJoin 함수 만들기
- [미션2] 동적범위 DynamicRange 함수 만들기
- [미션3] 필터링 매크로 만들기
보충 자료
① Squence / MyTextJoin 함수 만들기 사전 미션
'----------------------------------------- '미션1) 나만의 Sequence 매크로 만들기 'Column로 시작열을 지정하고, Count로 순번 개수를 지정하면 '시작열의 1행부터 순번을 출력하는 매크로를 작성합니다. '예상풀이시간 : 3분 '----------------------------------------- Sub SequenceNumber() Dim Column As String '시작열 @ 예) "A", "B", "C", ... Dim Count As Long '출력할 순번 개수 @ 예) 5, 10,15 ... Dim i As Long ' For문 변수 '힌트1) Column = "A" '힌트2) Count = 10 '힌트3) For i = 1 To Count '힌트4) Range(Column & i).Value End Sub '----------------------------------------- '미션2) 나만의 Sequence 매크로를 동적으로 만들기 'InitCell로 시작셀을 지정하고, Count로 출력할 순번 개수를 지정하면 'InitCell을 기준으로 한칸씩 내려가며 순번을 출력하는 매크로를 작성합니다. '예상풀이시간 : 5분 '----------------------------------------- Sub DynamicSequence() Dim InitCell As Range '시작셀 @ 예) Range("A1") Dim Count As Long '출력할 순번 개수 @ 예) 5, 10 15 .. Dim i As Long 'For문 변수 '힌트1) Set InitCell = Range("A1") '힌트2) Count = 10 '힌트3) For i = 1 To Count '힌트4) InitCell.Offset(i-1).Value End Sub '----------------------------------------- '미션3) 나만의 TextJoin 함수 만들기 '문자를 병합할 범위를 Rng로 입력하고, 구분자를 지정하면 'Rng의 각 셀을 돌아가며 구분자로 병합하는 함수를 작성합니다. '예상풀이시간 : 7분 '----------------------------------------- Function MyTextJoin(Rng As Range, _ Optional Delimiter As String = ",") '@ 인수 설명 'Rng : 값을 병합할 범위입니다. 'Delimiter : [선택인수] 구분자입니다. 기본값은 쉼표(,)입니다. Dim r As Range 'For Each문 변수 Dim Result As String '결과로 출력할 문자열 '힌트1) For Each r In Rng '힌트2) If r.Value <> "" Then '힌트3) Result = Result & r.Value & Delimiter '힌트4) MyTextJoin = Left(○○○, Len(○○○) - 1) End Function
② 시트 이벤트 매크로 마스터 코드
Application.ScreenUpdating = False Application.EnableEvents = False If Not Intersect(Target, Range("셀주소")) Is Nothing Then '실행할 명령문 End If Application.ScreenUpdating = True Application.EnableEvents = True
수업 개요
- ----- 1교시 -----
- 지난주 배운 내용 복습00:00
- 신뢰할 수 없는 파일 / 잠재적인 보안 오류 해결09:27
- 사전미션1. 순번 만들기 매크로10:24
- 사전미션2. 셀을 지정해서 순번 만들기13:13
- 사전미션3. TextJoin 함수 만들기16:52
- 코딩은 "실패"하면서 배워야합니다24:56
- 범위 마지막 셀 찾는 매크로26:36
- DynamicRange 함수 테스트40:07
- ----- 2교시 -----
- 나만의 자동필터 매크로 만들기41:29
- 자동필터 매크로 동작원리46:15
- 잘못된 상황 가정 후, 문제 해결하기47:51
- 시트 이벤트 매크로 사용법 기초49:27
- 원본 데이터 순서가 달라도 필터링 되나요?51:02
- SelectionChange vs. Change 차이점51:19
- 중요! 이벤트 매크로 사용시 주의사항54:40
- 실시간 필터링 매크로 만들기57:29
- 오류가 발생하는 상황 가정해보기59:13
- ----- 3교시 -----
- 범위 초기화 매크로 동작원리59:57
- 범위 초기화 매크로 작성하기1:00:43
- 범위 초기화 매크로 테스트1:05:33
- DynamicRange 코드를 직접 수정하는 방법1:06:05
- 실시간 필터링 매크로 최종 테스트1:06:59
수업 요약
1. 나만의 Sequence & TextJoin 함수 만들기
오늘 강의에서는 이전 시간에 알아본 For문과 IF문을 활용하여 나만의 Sequence 함수를 만드는 방법을 알아봅니다.
이후 10줄 내외의 간단한 코드를 작성하여 나만의 TextJoin 함수를 만드는 방법을 알아봅니다.
2. 범위 자동인식 & 필터링 매크로 만들기
이후 시트에 사용된 마지막 셀을 자동으로 인식하여 원하는 범위를 동적으로 선태하는 DynamicRange 함수를 작성합니다.
이후 DynamicRange 함수를 활용하여 조건을 만족하는 값만 필터링하는 나만의 필터 매크로를 작성합니다.
3. 시트 이벤트 기초 & 실시간 필터링 매크로 완성
오늘 강의에서는 실무에서 가장 많이 사용되는 핵심 시트 이벤트 2가지의 차이점과 실전 사용법에 대해 알아봅니다.
이후 시트 이벤트와 필터링 매크로를 접목하여, 셀 안에 입력한 값을 실시간으로 필터링하는 자동화 서식을 완성합니다.