책소개
엑셀 매크로&VBA의 기초부터 업무 적용까지 실무에 꼭 맞는 매크로 코드로 업무를 자동화한다!네이버 엑셀 대표 카페 ‘엑셀..하루에 하나씩’의 최준선이 제안하는 엑셀 매크로&VBA의 거의 모든 것!엑셀 2010, 2013, 2016, 2019, 2021, Microsoft 365 등 모든 버전에서 엑셀 매크로와 VBA의 기본 기능부터 주요 기능, 실제 업무에 활용할 수 있는 코드까지 체계적으로 학습할 수 있다. 버전별로 차이가 나는 내용은 상세한 사용 팁과 함께 사용 가능한 엑셀 버전을 표시하여 어떤 버전을 사용하든 막힘없이 매크로와 VBA 예제를 실습할 수 있게 구성했다. 매크로 기초 문법과 엑셀의 주요 개체, 자주 사용하는 기능 컨트롤 등 업무에 적용할 수 있는 내용으로 꼼꼼하게 목차를 구성하였으며 실무 기능을 찾기 쉽게 표시했다. 뿐만 아니라 수식 및 함수 도움말 등을 곳곳에 배치해 낯선 기능과 용어도 한번에 이해할 수 있다. ChatGPT 등의 AI를 활용한 매크로&VBA 학습법까지 익히고 나면 엑셀 업무 자동화 프로그래밍의 거의 모든 것을 학습할 수 있을 것이다. 학습하다 어려운 부분은 네이버 엑셀 대표 카페 〈엑셀..하루에 하나씩〉과 유튜브 채널 〈엑셀 마스터〉를 방문하여 저자의 도움을 받아 해결할 수 있다.
저자소개
마이크로소프트사의 엑셀 MVP로, 엑셀 강의 및 기업 업무 컨설팅과 집필등 활발한 활동중이다. 네이버 엑셀 대표 카페인 ‘엑셀..하루에 하나씩(http://cafe.naver.com/excelmaster)’에서 체계적인 교육 프로그램인 ‘엑셀 마스터 과정’을 운영하고 있다. 저서로는 『엑셀 매크로&VBA 바이블 - 모든 버전용(한빛미디어, 2019)』 『엑셀 바이블 - 모든 버전용(한빛미디어, 2019)』 『엑셀 2016 함수&수식 바이블(한빛미디어, 2018)』 『엑셀 피벗&파워 쿼리 바이블(한빛미디어, 2017)』 『엑셀 2016 바이블(한빛미디어, 2016)』 『엑셀 2016 매크로&VBA 바이블(한빛미디어, 2016)』 『엑셀 함수&수식 바이블(한빛미디어, 2015)』 『엑셀 2013 바이블(한빛미디어, 2013)』 『회사에서 바로 통하는 엑셀 실무 데이터 분석(한빛미디어, 2012)』 『회사에서 바로 통하는 엑셀 2010 함수 이해&활용(한빛미디어, 2012)』가 있다. 유튜브 채널 [엑셀마스터(www.youtube.com/c/엑셀마스터)]를 운영 중이다.
목차
PART 01 매크로 기초CHAPTER 01 환경 설정 및 프로그래밍 기초 지식01-01 매크로와 VBA 이해하기01-02 매크로 사용 통합 문서로 저장01-03 리본에 [개발 도구] 탭 표시01-04 보안 경고 메시지 줄과 신뢰할 수 있는 문서01-05 주요 업무 폴더를 신뢰할 수 있는 위치로 등록01-06 보안 위험 메시지 줄의 의미와 표시 해결 방법CHAPTER 02 매크로 기록기02-01 매크로 기록기 사용 방법02-02 기록된 코드를 효율적으로 수정하는 방법02-03 단축키를 이용해 매크로 실행02-04 매크로를 여러 파일에서 사용하는 방법02-05 개인용 매크로 통합 문서 삭제02-06 버튼 클릭해 매크로 실행02-07 리본 메뉴에 매크로 등록하는 방법CHAPTER 03 Visual Basic 편집기03-01 VB 편집기 창의 구성과 창 도킹 방법03-02 프로젝트 탐색기 창의 이해와 활용03-03 개체 내보내기와 가져오기03-04 속성 창의 이해와 활용03-05 코드 창의 이해와 활용03-06 직접 실행 창의 이해와 활용03-07 VB 편집기 옵션 설정 방법03-08 VB 편집기와 코딩용 글꼴03-09 VB 편집기의 주요 단축키03-10 VB 편집기에서 [편집] 도구 모음 활용 방법03-11 암호를 이용해 매크로 코드 보호하는 방법PART 02 VBA 배우기CHAPTER 04 엑셀의 개체 모델04-01 엑셀의 개체 모델 이해04-02 개체와 컬렉션04-03 개체에서 지원하는 명령어 확인 방법04-04 ThisWorkbook, ActiveSheet는 뭘 의미할까?04-05 With 문 활용 방법CHAPTER 05 Sub 프로시저05-01 Sub 프로시저란?05-02 주석의 이해와 활용05-03 프로시저를 작업 단위별로 나누어 개발하기05-04 변수의 이해와 활용05-05 상수의 이해와 활용05-06 개체변수의 이해와 활용05-07 배열변수의 이해와 활용05-08 동적 배열변수의 이해와 활용05-09 사용자 정의 데이터 형식의 이해와 활용05-10 변수를 여러 매크로와 공유하는 방법05-11 매크로 실행 후에도 변수가 초기화되지 않도록 하려면?CHAPTER 06 판단문06-01 If 문 구성 및 활용 방법06-02 다중 조건 처리에 사용되는 And, Or, Not 연산자 사용 방법06-03 IIf 함수 활용 방법06-04 If 문에서 ElseIf 절 활용하는 방법06-05 Switch 함수 활용 방법06-06 Select Case 문 구성 및 활용 방법06-07 If 문에서 Like 비교 연산자 활용 방법CHAPTER 07 순환문07-01 For… Next 문 구성 및 활용 방법07-02 Step 키워드 활용 방법07-03 거꾸로(반대로) 순환하는 순환문 구성 사례07-04 For… Next 문을 중첩하는 순환문 구성 사례07-05 Do… Loop 문의 구문 및 활용 방법 이해07-06 중첩된 For… Next 문을 한번에 빠져나갈 수 있는 실무 사례07-07 For Each… Next 문의 구성 및 활용 방법07-08 배열을 순환하는 For… Next 문의 활용 사례07-09 순환문을 사용할 때 (응답없음) 문제 해결하는 방법CHAPTER 08 Function 프로시저08-01 엑셀에서 제공되지 않는 함수 혹은 상위 버전의 함수를 생성하는 방법08-02 함수를 만들 때 생략 가능한 인수를 구성하는 방법08-03 생성할 함수의 여러 인수를 하나의 배열 변수에 저장하고 사용하는 방법08-04 생성할 함수가 반환할 에러를 정확하게 설정하는 방법08-05 내장 함수(SUM 등)와 사용자가 개발한 함수는 다르게 동작할까?08-06 ByRef, ByVal 키워드는 어떤 역할을 할까?08-07 생성한 함수를 함수 마법사에 표시하려면?08-08 사용자가 생성한 함수를 모든 파일에서 사용하려면?08-09 추가 기능 해제와 삭제 방법CHAPTER 09 에러 처리와 실행 속도 향상 방법 09-01 에러 발생 상황과 대처 방법09-02 에러는 언제 발생하고, 어떻게 해결할 수 있나09-03 에러 해결을 위한 필수 도구09-04 매크로가 실행할 때 전체가 아니라 특정 라인까지만 실행되도록 하려면?09-05 에러가 발생되는 상황을 제어하기 위한 On Error 문 활용 방법09-06 에러가 발생하는 상황을 이용한 코드 최적화 방법09-07 매크로 실행 속도를 높이려면 엑셀에서 제공하는 기능을 사용한다09-08 엑셀 설정을 변경해 매크로 실행 속도 높이는 방법CHAPTER 10 VBA 내장 함수10-01 원하는 순간에 필요한 메시지 창 표시하는 방법10-02 매크로 실행 중에 사용자가 원하는 값을 입력할 수 있도록 하려면?10-03 매크로 실행 중에 작업 범위를 선택할 수 있도록 하려면?10-04 MsgBox와 InputBox 대화상자의 크기 조정 방법10-05 Left, Mid, Right 함수는 엑셀의 내장 함수와 어떤 부분이 다를까?10-06 Find 함수와 동일한 InStr 함수 그리고 VBA에만 제공되는 InStrRev 함수10-07 빈 셀인지 여부를 확인할 때는 IsEmpty나 Len 함수10-08 변수에 저장된 데이터를 고치거나 지울 때 사용하는 Replace 함수10-09 Asc, Chr 함수로 문자 코드를 이용하는 방법10-10 숫자와 텍스트 데이터 형식을 서로 변환하는 방법10-11 데이터 형식 변환 함수10-12 Format 함수를 활용한 데이터 변환10-13 오늘 날짜와 현재 시간을 반환하는 함수10-14 DateSerial과 DateValue 함수를 사용한 날짜 입력 및 계산 방법10-15 기준 시점에서 일정 기간 전후의 날짜/시간 계산10-16 DatePart 함수로 날짜 상위 단위(년, 분기, 월 등) 반환 받는 방법10-17 두 날짜의 차이(근속기간)를 구하는 방법10-18 Timer 함수로 소요 시간 구하는 방법10-19 Array 함수를 사용해 배열로 값 전달하는 방법10-20 데이터를 구분 문자로 분리해 배열에 저장하는 방법10-21 배열 내 값을 구분 기호로 연결해 반환하는 방법10-22 셀(또는 범위)에 수식 입력하는 방법10-23 매크로에서 워크시트 함수를 사용하는 방법10-24 매크로에서 워크시트 함수를 사용할 때 발생하는 에러 해결 방법10-25 워크시트 함수에서 날짜 데이터를 사용할 때 주의할 점PART 03 엑셀 프로그램 주요 개체CHAPTER 11 셀 또는 범위(Range) 개체11-01 Range 개체의 주요 구성원 이해11-02 Range 개체로 셀(또는 범위)을 참조하는 방법11-03 Ctrl + A 로 연속된 범위를 참조하는 방법11-04 Ctrl + 방향키로 동적 범위 참조하는 방법11-05 전체 범위에서 원하는 조건에 맞는 범위 참조 방법11-06 Offset, Resize로 참조 범위 조정하는 방법11-07 Value, Value2, Text, Formula 속성의 차이와 사용 방법11-08 셀에 수식 혹은 배열 수식을 입력하는 방법11-09 숫자 서식 코드를 이용해 셀 표시 형식 변경하는 방법11-10 복사, 잘라내기, 붙여넣기를 이용하는 방법11-11 선택하여 붙여넣기를 이용해 셀의 일부분만 복사해 붙여 넣는 방법11-12 Transpose 함수와 행/열 바꿈11-13 범위를 그림으로 복사해 붙여 넣는 방법11-14 표를 이미지 파일로 저장하는 방법11-15 셀 지우기와 셀 삭제 방법의 차이11-16 사용하지 않는 빈 열(또는 행) 삭제하는 방법11-17 원하는 위치에 행(또는 열) 삽입하는 방법11-18 시트 내 하이퍼링크 모두 해제11-19 선택 범위의 빈 셀 인식해 자동으로 셀 병합하기11-20 VLOOKUP, XLOOKUP 함수를 매크로로 개발하는 방법11-21 Find 메서드로 값을 찾을 때 여러 조건을 모두 만족하는 위치 찾는 방법11-22 유령 문자를 삭제하는 방법11-23 Interior 속성을 이용해 부분합 행에 글꼴과 배경 서식 적용하는 방11-24 Border 속성을 이용해 원하는 테두리 서식 설정하는 방법11-25 엑셀 표(ListObject) 등록 방법11-26 엑셀 표 범위 참조 방법11-27 엑셀 표에 새 데이터를 입력하는 매크로를 개발할 때 주의할 점CHAPTER 12 시트 개체12-01 Worksheet 개체의 주요 구성원 이해12-02 Activate와 Select 메서드의 차이 이해12-03 시트 탭 이름을 변경하는 방법과 주의할 점12-04 빈 워크시트를 추가하는 방법12-05 사용하지 않는 시트 삭제 방법12-06 전체 시트로 이동할 수 있는 목차 시트 만드는 방법12-07 시트 탭 위치를 옮기거나 다른 파일로 복사(또는 이동)하는 방법12-08 시트 탭을 원하는 순서로 정렬하는 방법12-09 시트를 숨기거나 취소하는 방법 12-10 시트를 보호하거나 해제하는 방법12-11 시트에서 사용 중인 전체 범위를 반환해 주는 UsedRange 속성 사용 방법12-12 시트에 입력된 수식을 한번에 숨기는 방법12-13 시트에서 선택할 수 있는 범위를 제한하는 방법12-14 원하는 시트만 인쇄하는 방법12-15 표의 특정 부분만 항목별로 인쇄하기12-16 머리글/바닥글에 원하는 정보를 표시해 인쇄하는 방법12-17 페이지 가로 너비를 맞추고 제목 행을 반복 출력하는 방법CHAPTER 13 파일(Workbook) 개체13-01 Workbook 개체의 주요 구성원 이해13-02 엑셀 파일을 여는 방법과 주의할 점13-03 작업할 파일을 선택해 여는 방법13-04 작업할 여러 파일을 한번에 여는 방법13-05 GetOpenFilename 메서드를 이용해 [열기] 대화상자를 열 때 기본 폴더 설정하는 방법13-06 특정 폴더 내 파일을 하나로 합치는 방법13-07 파일을 열지 않고 데이터를 참조하는 방법13-08 작업 폴더를 직접 선택하는 방법13-09 빈 통합 문서 파일을 새로 만드는 방법13-10 작업한 파일을 저장하는 방법13-11 일별 백업 파일 생성하는 방법13-12 xls 형식 파일을 엑셀 2007 이후 버전의 파일 형식(xlsx, xlsm)으로 자동 저장하는 방법13-13 각 시트를 개별 파일로 저장하는 방법13-14 현재 시트를 PDF 파일로 저장하는 방법13-15 텍스트 파일을 엑셀 파일로 변환하는 방법13-16 파일의 유효 기간이 끝나면 파일이 자동 삭제되도록 설정하는 방법CHAPTER 14 엑셀 프로그램(Application)14-01 Application 개체의 주요 구성원14-02 계산기 앱을 이용해 엑셀의 계산 결과 검증하는 방법14-03 계산식 문자열의 계산 결과를 반환하는 방법14-04 Intersect, Union 메서드를 활용한 교집합, 합집합 범위 구하는 방법14-05 Selection 속성을 이용해 사용자가 선택한 개체가 무엇인지 확인하는 방법14-06 매크로를 호출한 대상 개체를 확인하는 방법14-07 화면에 표시되지 않는 시트 내 셀 선택하는 방14-08 다른 파일의 매크로를 실행하는 방법14-09 매크로에서 엑셀 기본 대화상자 호출해 사용하는 방법14-10 원하는 프린터를 선택해 인쇄하는 방14-11 매크로 진행 상황을 상태 표시줄에 표시하는 방법14-12 매크로 실행을 중간에 취소하는 방법14-13 엑셀 설정을 기본 설정으로 초기화하는 방법14-14 리본 메뉴에서 원하는 탭을 매크로로 표시하는 방법14-15 리본 메뉴를 숨기거나 표시하는 방법 14-16 리본 메뉴의 명령을 매크로로 제어하는 방법14-17 단축 메뉴에 원하는 명령을 추가하는 방법 14-18 추가 기능 탭 매크로로 제거하는 방법CHAPTER 15 이벤트(Event)15-01 이벤트 생성 방법15-02 Worksheet 개체의 주요 이벤트 이해15-03 파일내 어떤 시트로 몇 번 이동하면서 작업하는지 현황을 파악하는 방법15-04 선택한 데이터를 원하는 위치로 옮겨 기록하는 방법15-05 유효성 검사가 설정된 범위로 복사 제한하는 방법15-06 유효성 검사 목록에서 이미 선택된 항목은 더 이상 표시되지 않도록 설정하는 방법15-07 유효성 검사의 상위 목록을 수정하면 하위 목록을 초기화하는 방법15-08 시트 보호 없이 특정 범위 내 데이터를 수정할 수 없도록 만드는 방법15-09 입력한 값을 누적 합산하고 입력된 값의 내역을 기록하는 방법15-10 더블클릭한 셀이 포함된 열을 정렬하는 방법15-11 Workbook 개체의 이벤트 이해15-12 Workbook_Open 이벤트와 Auto_Open 매크로의 차이15-13 파일을 닫을 때 발생하는 Before_Close 이벤트 활용 방법15-14 특정 작업을 처리할 때까지 파일을 닫지 못하게 설정하는 방법15-15 파일을 저장할 때마다 백업 파일을 자동 생성하는 방법15-16 원하는 조건으로 페이지를 구분해 인쇄하는 방법15-17 새 시트 삽입할 때 빈 양식 자동으로 생성하는 방15-18 두 시트의 표시 위치를 동기화하는 방법15-19 이벤트 우선 순위15-20 전체 파일에 모두 적용되는 이벤트 활용 방법15-21 클래스 모듈을 활용한 Application 개체 활용 방법15-22 특정 시간에 매크로 실행을 예약하는 방법15-23 일정 간격으로 특정 매크로를 반복 실행하는 방법15-24 특정 키 입력으로 원하는 매크로를 실행하는 방법CHAPTER 16 사용자 정의 폼16-01 사용자 정의 폼(Userform) 이해16-02 개발된 폼 실행 방법과 닫는 방법16-03 도구 상자 내 Active-X 컨트롤 이해16-04 도구 상자 창 이용 방법16-05 폼 컨트롤의 속성 및 이벤트 이해16-06 확인, 닫기, 취소 버튼 생성 방법16-07 레이블 컨트롤을 이용해 하이퍼링크 설정하는 방법16-08 TextBox 컨트롤 사용하기16-09 TextBox 컨트롤에 숫자 입력하는 방법16-10 암호를 입력받는 TextBox 설정 방법16-11 폼에 콤보상자 추가하는 방법16-12 중복된 데이터에서 고유 항목만 콤보박스 컨트롤에 추가하는 방법16-13 두 개의 콤보상자 컨트롤을 연동해 설정하는 방법16-14 ListBox 컨트롤 사용 방법16-15 ListBox 항목을 다중 선택하는 방법16-16 ListBox 항목을 검색해 찾는 방법16-17 두 ListBox 항목을 서로 전달하거나 가져오는 방법16-18 ListBox 항목을 정렬하는 방법16-19 ListBox 항목 위치를 위/아래로 이동하는 방법16-20 확인란(CheckBox) 컨트롤 사용 방법16-21 옵션 단추(OptionButton) 컨트롤 사용 방법16-22 옵션 단추를 그룹별로 묶어 관리하는 방법16-23 스크롤막대와 스핀단추 사용 방법16-24 폼에 이미지 추가하는 방법16-25 폼에서 범위 참조할 때 사용하는 RefEdit 컨트롤16-26 TreeView 컨트롤 I - 컨트롤 등록 및 폼 구성16-27 TreeView 컨트롤 II - 컨트롤 설정16-28 TreeView 컨트롤 III - 다른 컨트롤과 연동하기16-29 TreeView 컨트롤 IV - 추가 속성 익히기16-30 ListView 컨트롤 I - 등록 및 폼 구성하기16-31 ListView 컨트롤 II - 컨트롤 설정하기16-32 ListView 컨트롤 III - 정렬하기16-33 ListView 컨트롤 IV - 검색하기16-34 폼에 삽입된 여러 컨트롤 글꼴을 한번에 변경하는 방법16-35 여러 컨트롤 위치를 맞추는 방법16-36 폼에서 Tab을 눌러 이동하는 컨트롤 순서 조정하는 방법CHAPTER 17 실무 활용 폼17-01 입력폼 I - 폼 구성17-02 입력폼 II - 폼 초기화와 실행17-03 입력폼 III - 입력 버튼 기능 개발17-04 검색/편집폼 I - 검색 폼 구성17-05 검색/편집폼 II - 검색 폼 기능 개발17-06 검색/편집폼 III - 편집 폼 개발17-07 진행률(Label 컨트롤) 표시 폼 I - 폼 구성17-08 진행률(Label 컨트롤) 표시 폼 II - 매크로 개발17-09 진행률(Label 컨트롤) 표시 폼 III - 매크로와 폼 연동17-10 진행률(Progress 컨트롤) 표시 폼 I - 폼 구성17-11 진행률(Progress 컨트롤) 표시 폼 II - 매크로 개발17-12 진행률(Progress 컨트롤) 표시 폼 III - 폼 연동17-13 차트 표시 폼 I - 폼구성17-14 차트 표시 폼 II - 폼 초기화 및 차트 생성17-15 차트 표시 폼 III - 폼 완성17-16 마법사 폼 I - 폼 구성17-17 마법사 폼 II - 페이지별 컨트롤 구성17-18 마법사 폼 III - 단계별 컨트롤 기능 개발17-19 마법사 폼 IV - 폼 기능 개발PART 04 기타 유용한 개발 방법CHAPTER 18 차트18-01 차트를 원하는 위치에 원하는 크기로 생성하는 방법18-02 선택 항목에 맞춰 차트 원본 범위를 자동으로 변경18-03 차트 데이터 레이블에 원하는 값을 표시하는 방법18-04 여러 차트를 겹치지 않게 정렬하는 방법18-05 차트 이벤트 적용 방법18-06 마우스 포인터가 위치한 꺾은선 그래프 강조하는 방법CHAPTER 19 피벗 테이블19-01 피벗 테이블 보고서 만들기19-02 여러 개의 분석 보고서를 피벗으로 생성하는 방법19-03 관계 설정해 피벗 테이블 생성하기19-04 피벗 테이블 새로 고침 자동화19-05 값 영역의 숫자를 원본 표의 서식과 동기화하는 방법CHAPTER 20 자주 사용하는 엑셀 기능 조작 방법 20-01 자동 필터를 매크로로 제어하는 방법20-02 자동 필터가 설정된 표에 복사/붙여넣기20-03 셀 스타일 초기화 방법20-04 메모 사용이 많은 사용자를 위한 유용한 매크로20-05 [목표값 찾기]를 이용해 계산 결과 수정하기20-06 확인란 컨트롤을 이용해 설문지 쉽게 만들기CHAPTER 21 VB 편집기 조작21-01 이벤트 프로시저를 생성(또는 삭제)하는 매크로 개발 방법21-02 Module 파일을 이용한 매크로 자동 업데이트 방법21-03 개발된 VBA 코드 종류별 파일 백업 방법21-04 파일 내 VBA 코드를 모두 삭제하기CHAPTER 22 ADO22-01 다른 엑셀 파일을 ADO를 이용해 연결하는 방법22-02 Access 테이블(또는 쿼리)을 엑셀로 가져오는 방법22-03 다른 엑셀 파일을 열지 않고 데이터 가져오는 방법22-04 SQL을 사용해 원하는 조건의 데이터만 가져오기22-05 외부 데이터를 가져올 때 엑셀 표에 반환하는 방법22-06 외부 데이터를 원하는 구분 기호로 연결해 가져오는 방법22-07 외부 데이터를 요약해 결과를 반환하는 방법22-08 Access 테이블, 쿼리를 피벗 테이블 원본으로 사용22-09 파일을 열지 않고 데이터 수정하는 방법22-10 엑셀 파일을 열지 않고 새 데이터를 추가하는 방법22-11 Access 테이블에 엑셀 데이터 추가하는 방법22-12 여러 시트 데이터를 Access 테이블에 통합22-13 Access 테이블의 데이터 중 특정 조건의 데이터만 삭제CHAPTER 23 ChatGPT를 활용한 매크로 개발23-01 ChatGPT를 매크로 공부에 어떻게 활용할까?23-02 ChatGPT를 이용해 매크로 개발에 필요한 코드를 얻는 방법23-03 ChatGPT를 이용해 매크로 에러 해결23-04 ChatGPT를 이용한 코드 효율화 방법23-05 ChatGPT를 이용해 매크로를 업데이트하는 방법23-06 ChatGPT 활용 사례 - 엑셀 차트를 파워포인트에 넣기23-07 ChatGPT 활용 사례 - 발주서 시트를 PDF로 변환한 후 아웃룩으로 메일 발송23-08 ChatGPT 활용 사례 - 웹 데이터 크롤링INDEX