엑셀 매크로&VBA 바이블
엑셀 매크로&VBA의 기초부터 업무 적용까지 실무에 꼭 맞는 매크로 코드로 업무를 자동화한다네이버 엑셀 대표 카페 ‘엑셀..하루에 하나씩’의 최준선이 제안하는 엑셀 매크로&VBA의 거의 모든 것엑셀 2007, 2010, 2013, 2016, 2019 Office 365 등 엑셀의 모든 버전에서 매크로와 VBA의 기본 기능부터 주요 기능, 실제 업무에 활용할 수 있는 코드까지 체계적으로 학습할 수 있다. 버전별로 차이가 나는 내용은 상세한 사용 팁과 사용 가능한 엑셀 버전을 표시하여 모든 버전에서 엑셀 매크로와 VBA를 제대로 학습할 수 있도록 구성했다. 업무에 필요한 매크로 기초 문법, 코드, 엑셀의 주요 개체, 자주 사용하는 기능을 컨트롤하는 방법, 엑셀과 함께 액세스와 같은 다른 데이터베이스 프로그램을 제어하는 업무 자동화 방법 등을 상세하게 수록했다. 친절한 코드 설명과 실무에 꼭 맞는 예제 구성으로 엑셀 업무 자동화 프로그래밍의 거의 모든 것을 좀 더 쉽게 학습할 수 있다. 학습하다 어려운 부분은 네이버 엑셀 대표 카페 ‘엑셀..하루에 하나씩’을 방문하여 저자의 도움을 받아 해결할 수 있다.
마이크로소프트사의 엑셀 MVP로, 엑셀 강의 및 기업 업무 컨설팅과 집필 활동을 활발히 하고 있습니다. 네이버 엑셀 대표 카페인 ‘엑셀..하루에 하나씩(http://cafe.naver.com/excelmaster)’에서 체계적인 교육 프로그램인 ‘엑셀 마스터 과정’을 운영하고 있습니다.
PART 01 매크로 기초CHAPTER 01 환경 설정 및 프로그래밍 기초 지식01-01 매크로와 VBA 이해하기01-02 매크로를 사용할 수 있도록 파일 저장하기01-03 리본 메뉴에 [개발 도구] 탭 표시하기01-04 보안 경고 메시지 줄과 신뢰할 수 있는 문서01-05 모든 업무 파일에 보안 경고 메시지 줄이 표시되지 않도록 설정하기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 VBAProject 개체에 암호를 지정해 코드 보호하기PART 02 VBA 배우기CHAPTER 04 엑셀의 개체 모델04-01 엑셀의 개체 모델 이해하기04-02 개체와 컬렉션 구분하기04-03 개체의 구성원 이해하기04-04 개체에 빠르게 접근하기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 Type 문을 사용하는 사용자 정의 데이터 형식 이해하기05-10 Private, Public 문을 사용하는 변수의 사용 범위 이해하기05-11 프로시저를 종료해도 값을 보관하는 정적변수 이해하기CHAPTER 06 판단문06-01 If 문을 이용한 판단문 구성하기06-02 And, Or, Not 연산자를 이용해 다중 조건 처리하기06-03 IIf 함수를 사용해 판단 작업 처리하기06-04 ElseIf 절을 이용해 다중 조건 처리하기06-05 Switch 함수를 사용해 판단 작업 처리하기06-06 Select Case 문을 이용해 판단문 구성하기06-07 Like 연산자를 이용한 패턴 매칭 조건 설정하기CHAPTER 07 순환문07-01 For… Next 문을 이용한 순환문 구성하기07-02 Step 키워드를 이용한 순환문 구성하기07-03 불필요한 행을 삭제하는 순환문 구성하기07-04 For… Next 문을 중첩해 표 변환하기07-05 Do… Loop 문을 이용한 순환문 구성하기07-06 중첩 For 문을 탈출하기 위해 Do 문 활용하기07-07 For Each… Next 문을 이용한 순환문 구성하기07-08 배열을 순환하는 For Each… Next 문 구성하기07-09 순환문을 사용할 때 (응답없음) 문제 해결하기CHAPTER 08 Function 프로시저08-01 Function 프로시저를 이용해 사용자 정의 함수 만들기08-02 생략 가능한 인수를 사용하는 사용자 정의 함수 만들기08-03 인수의 개수가 정해지지 않은 사용자 정의 함수 만들기08-04 적절한 수식 에러를 반환하는 사용자 정의 함수 만들기08-05 사용자 정의 함수의 재계산 방법 이해하기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 On Error 문을 이용한 코드 최적화 방법09-07 엑셀의 기능을 이용한 프로시저 처리 속도 증진 방법09-08 엑셀 옵션을 변경해 프로시저의 처리 속도를 향상시키는 방법CHAPTER 10 VBA 내장 함수10-01 MsgBox 함수를 이용해 메시지 창 표시하기10-02 InputBox 함수를 이용해 값을 입력받아 처리하기10-03 InputBox 메서드로 범위 지정해 작업하기10-04 MsgBox와 InputBox 대화상자의 크기 조정하기10-05 Left, Mid, Right 함수로 문자열 잘라내기10-06 InStr, InStrRev 함수로 문자 위치 확인하기10-07 입력된 값이 있는지 확인하는 IsEmpty, Len 함수10-08 Replace 함수를 사용해 값 수정하기10-09 Asc, Chr 함수로 문자를 숫자처럼 사용하기10-10 Val, Str 함수로 숫자, 텍스트 값을 서로 변환하기10-11 Int, Fix, CInt 함수로 데이터 형식 변환하기10-12 Format 함수를 사용해 값 변환하기10-13 Date, Time, Now 함수로 오늘 날짜와 현재 시간 알아내기10-14 DateSerial, DateValue 함수로 날짜 변환 및 계산하기10-15 DateAdd 함수로 일정 기간 전후의 날짜 값 계산하기10-16 DatePart 함수로 상위 날짜 단위(연, 분기, 월) 반환하기10-17 DateDiff 함수로 근속기간 구하기10-18 Timer 함수로 시간 측정하기10-19 Array 함수를 사용해 배열에 값 전달하기10-20 Split 함수로 셀 값을 구분 문자로 구분해 배열에 저장하기10-21 Join 함수로 배열 내 값을 연결해 반환하기10-22 매크로에서 수식 입력하기10-23 WorksheetFunction 개체를 활용해 워크시트 함수 사용하기10-24 매크로에서 수식을 사용할 때 에러 발생을 제어하는 방법10-25 날짜 데이터를 수식에서 사용할 때 주의할 점PART 03 엑셀 프로그램 주요 개체CHAPTER 11 셀, 범위를 지정하는 Range 개체11-01 Range 개체의 주요 구성원 이해하기11-02 범위를 참조하는 다양한 방법11-03 CurrentRegion 속성을 이용해 연속된 동적 범위 참조하기11-04 End 속성을 이용해 동적 범위 참조하기11-05 SpecialCells 속성을 이용해 조건에 맞는 범위 참조하기11-06 Offset, Resize 속성을 이용해 범위 조정하기11-07 Value와 Text, Formula 속성의 차이를 이해하고 사용하기11-08 Formula와 FormulaArray 속성을 이용해 수식 입력하기11-09 NumberFormat 속성을 이용해 셀 값의 표시 형식 변경하기11-10 Copy, Cut, Paste 메서드를 이용해 셀 값을 복사(이동)하기11-11 PasteSpecial 메서드를 이용해 복사된 셀 일부만 붙여넣기11-12 Transpose 함수를 사용해 행/열을 바꿔서 붙여넣기11-13 CopyPicture 메서드로 그림 복사하기11-14 표 범위를 캡처해 이미지 파일로 저장하기11-15 Clear, Delete 메서드를 이용한 셀 구성 요소 지우기11-16 사용하지 않는 빈 열(또는 행) 삭제하기11 -17 Insert 메서드를 이용해 셀 삽입하기11-18 ClearHyperlinks 메서드로 전체 하이퍼링크 삭제하기11-19 Merge, UnMerge 메서드로 쉽게 병합하기11-20 Find 메서드를 이용해 원하는 값이 있는 위치를 찾아 필요한 값 참조하기11-21 Find 메서드를 이용해 다중 조건에 맞는 값의 위치 찾기11-22 Replace 메서드를 이용해 값을 찾아 바꾸기11-23 Interior 속성을 이용해 원하는 서식 적용하기11-24 Border 속성을 이용해 원하는 테두리 서식 설정하기11-25 엑셀 표(ListObject)로 변환하기11-26 엑셀 표 범위 참조하기11-27 엑셀 표에 새 데이터 추가하기CHAPTER 12 엑셀 작업의 중심인 시트 개체12-01 시트 개체의 주요 구성원 이해하기12-02 Activate와 Select 메서드를 이용해 시트 선택하기12-03 Name 속성을 이용해 시트 이름 변경하기12-04 Add 메서드를 사용해 새 워크시트 삽입하기12-05 Delete 메서드를 이용해 시트 삭제하기12-06 Add, Delete 메서드를 이용해 목차 시트 만들기12-07 Copy, Move 메서드를 이용해 시트를 현재 파일이나 다른 파일로 옮기기 12-08 Move 메서드를 이용해 시트 정렬하기12-09 Visible 속성을 이용해 워크시트를 숨기거나 표시하기12-10 Protect와 Unprotect 메서드를 이용해 워크시트를 보호하거나 보호 해제하기12-11 UsedRange 속성을 이용해 워크시트의 사용 범위 확인하기12-12 FormulaHidden 속성으로 워크시트 내 수식을 모두 숨기기12-13 ScrollArea 속성을 이용해 워크시트의 선택 범위 제한하기12-14 PrintOut 메서드를 이용해 필요한 워크시트만 인쇄하기12-15 특정 표의 항목별로 인쇄하기12-16 PageSetup 속성을 이용해 머리글, 바닥글 설정하기12-17 한 장에 맞춰 인쇄하고 머리글 행 반복 출력하기CHAPTER 13 엑셀 작업 단위의 중심, 파일을 다루는 Workbook 개체13-01 Workbook 개체의 주요 구성원 이해하기13-02 Open 메서드를 이용해 파일 열기13-03 GetOpenFilename 메서드로 파일을 선택해 열기13-04 여러 개 파일을 선택하고 한 번에 열기13-05 GetOpenFilename 메서드를 사용할 때 기본 폴더 설정하기13-06 Dir 함수로 특정 폴더 내 파일을 하나로 통합하기13-07 FormulaArray 속성을 이용해 닫힌 파일에서 데이터 가져오기13-08 작업할 폴더를 대화상자에서 선택하기13-09 Add 메서드로 빈 파일 새로 만들기13-10 Save, SaveAs 메서드로 파일 저장하기13-11 SaveCopyAs 메서드로 일별 백업 파일 만들기13-12 XLS 파일을 XLSX나 XLSM 형식으로 자동 전환하기13-13 현재 파일의 모든 시트를 개별 파일로 생성하기13-14 PDF 파일로 저장하기13-15 OpenText 메서드로 텍스트 파일을 열어 엑셀로 저장하기13-16 파일의 유효 기간을 설정해 스스로 삭제되는 코드 구성하기CHAPTER 14 엑셀 프로그램(Application)14-01 Application 개체의 주요 구성원14-02 SendKeys 메서드를 이용해 계산기 프로그램 제어하기14-03 Evaluate 메서드로 계산식의 계산 결과 반환하기14-04 Intersect/Union 메서드로 교집합, 합집합 범위 구하기14-05 선택한 개체를 Selection 속성으로 구분하기14-06 프로시저를 호출한 개체를 Caller 속성으로 확인하기14-07 Goto 메서드를 이용해 원하는 위치로 빠르게 이동하기14-08 Run 메서드를 활용해 다른 파일의 매크로 실행하기14-09 Dialogs 속성을 이용해 엑셀의 기본 대화상자 호출하기14-10 프린터를 골라 인쇄하기14-11 상태 표시줄을 이용해 진행 상황 표시하기14-12 ESC를 눌러 매크로 실행 중단하기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 파일을 닫을 때 자동으로 저장해주는 이벤트 활용하기15-14 특정 작업을 완료하지 않으면 파일을 닫지 못하게 설정하기15-15 파일을 저장할 때마다 백업 파일을 자동으로 생성하기15-16 인쇄할 때 자동으로 페이지 구분선 넣기15-17 빈 시트를 삽입할 때 이전 시트 양식을 복사해 사용하기15-18 시트 이동할 때 이전 시트와 동일한 위치를 표시하기15-19 이벤트 우선순위 이해하기15-20 전체 파일에 적용할 수 있는 Application 개체 이벤트 생성하기15-21 클래스 모듈을 이용해 Application 개체 이벤트 생성하기15-22 OnTime 이벤트로 특정 시간에 지정한 매크로 동작하기15-23 OnTime 이벤트로 일정 간격으로 매크로 반복 실행하기15-24 OnKey 이벤트를 활용해 단축키로 매크로 실행하기CHAPTER 16 사용자 정의 폼16-01 사용자 정의 폼 이해하기16-02 개발된 Userform 개체를 화면에 표시하고 닫기16-03 도구 상자의 Active-X 컨트롤 역할 이해하기16-04 도구 상자 창 이용 방법16-05 컨트롤의 공통 속성 및 이벤트 이해하기16-06 CommandButton 컨트롤 사용하기16-07 폼에 하이퍼링크 설정하기16-08 TextBox 컨트롤 사용하기16-09 TextBox 컨트롤에 숫자만 입력하도록 허용하기16-10 TextBox 컨트롤을 이용해 암호 입력하기16-11 ComboBox 컨트롤 사용하기16-12 범위 내 고유 항목만 ComboBox 컨트롤에 표시하기16-13 두 개의 ComboBox 컨트롤 연결하기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 Frame 컨트롤을 이용해 OptionButton 컨트롤을 그룹으로 묶어 사용하기16-23 ScrollBar, SpinButton 컨트롤 사용하기16-24 Image 컨트롤 사용하기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 MonthView 컨트롤 I - 라이브러리 등록하기16-35 MonthView 컨트롤 II - 폼 및 컨트롤 구성하기16-36 MonthView 컨트롤 III - 날짜 선택해 입력하기16-37 MonthView 컨트롤 IV - 단축 메뉴에서 폼 호출하기16-38 폼에 삽입된 컨트롤 글꼴을 한 번에 설정하기16-39 여러 개의 컨트롤 위치를 손쉽게 맞추는 방법16-40 컨트롤의 탭 순서 조정하기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 여러 차트를 M×N 행렬 방식으로 정렬하기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 매크로 자동 업데이트하기21-03 매크로, 이벤트, 폼을 개별 파일로 백업하기21-04 파일 내 VBA 코드를 모두 삭제하기CHAPTER 22 ADO22-01 외부 엑셀 파일 연결하기22-02 액세스 테이블을 엑셀로 가져오기22-03 다른 엑셀 파일에 연결해 데이터 가져오기22-04 SQL을 사용해 원하는 조건의 데이터만 가져오기22-05 엑셀 표로 외부 데이터 가져오기22-06 조건에 맞는 데이터만 쉼표(,)로 연결해 반환받기22-07 외부 데이터를 요약해 가져오기22-08 피벗 테이블에 바로 연결해 분석하기22-09 SQL로 다른 엑셀 파일의 데이터 수정하기22-10 엑셀 파일을 열지 않고 새 데이터 추가하기22-11 엑셀 데이터를 액세스 데이터베이스에 추가하기22-12 여러 시트의 데이터를 데이터베이스로 통합하기22-13 SQL 문을 사용해 액세스의 불필요한 데이터 삭제하기INDEX