엑셀 목차 만들기 자동화 명령문 :: CreateTOC 함수 사용법 총정리

구문

CreateTOC ( [분류기준], [정렬방향], [돌아가기링크생성], [링크위치] )

패치노트
  • 2020.01.09 : 숨겨진 시트는 목록에서 제외되도록 명령문을 수정하였습니다.
  • 2020.01.17 : 엑셀 2007 에서도 사용가능하도록 추가기능 파일을 수정하였습니다.
설명

엑셀 사용자지정함수인 CreateTOC 함수는 통합문서의 시트를 사용자 기준에 맞춰 자동으로 분류 및 정렬하여 목차를 생성하는 함수입니다. VBA 사용이 어려우신 분들을 위해  '추가기능' 파일 제공해드립니다. 추가기능을 다운받아 설치하시면 '목차만들기' 기능을 바로 사용하실 수 있습니다. '추가기능' 사용법은 영상강의에서 자세히 설명드렸습니다.

CreateTOC 함수는 아래 3가지만 숙지하면 어떤 상황에서도 목차를 쉽게 만들 수 있습니다.

설정1. 오름차순/내림차순 정렬

목차를 오름차순과 내림차순으로 정렬하여 생성합니다. 필요에 따라, 정렬없이 목차를 분류만 하여 생성할 수도 있습니다. 쉬운 예제로, [과일-사과], [채소-배추], [과일-딸기], [채소-당근] 순서로 시트가 입력되어 있다고 가정하겠습니다.

  1. 시트를 오름차순으로 정렬한 뒤 2자리를 기준으로 분류할 경우, 아래 순서로 목차가 생성됩니다..
    1 시트 정렬 후 목차 생성

    시트를 정렬한 뒤 분류하여 목차를 생성합니다.

  2. 시트를 정렬하지 않고 기존 순서 그대로 분류할 경우, 아래와 같이 목차가 생성됩니다.
    2 시트 정렬없이 목차 만들기

    시트를 정렬하지 않고, 나열된 순서 그대로 분류하여 목차를 생성합니다.

설정2. 목차 그룹화 (시트 분류)

시트를 분류하는 기준은 숫자(자리수) 또는 특수기호( '-' 또는 ':' 등)의 2가지 형태로 입력합니다.

  1. 숫자로 입력
    시트 분류 기준을 숫자로 입력하면, 시트명의 왼쪽부터 고정된 자리수를 기준으로 시트를 분류합니다.

    3 자리수 기준 목차 만들기

    자리수를 기준으로 분류하여 목차를 생성합니다. (자리수 고정)

  2. 기호로 입력
    시트 분류 기준을 '특정 기호'로 입력할 수 있습니다. 그럴경우 각 시트의 왼쪽부터 '특정 기호'를 찾은 뒤, 특정 기호 바로 앞까지 입력된 값을 기준으로 시트를 분류합니다.

    4 기호 기준 목차만들기

    '기호'를 기준으로 분류합니다. 기호 위치에 따라 유동적으로 분류합니다.

설정3. '목차로 돌아가기' 링크 생성

시트가 많아 엑셀 하단에 위치한 '시트 이동 막대'로 시트 간에 이동이 어려울 경우에 대비하여, 각 시트에 특정 셀을 지정하여 '목차로 돌아가기' 링크를 생성할 수도 있습니다.

목차로 돌아가기 링크

필요시 목차로 돌아가기 링크를 각 시트에 추가할 수 있습니다.

예제파일 및 추가기능 다운로드
공식설명파일구분마지막수정일파일형식파일다운로드
34663[VBA예제] Multi_AutoFilter :: 엑셀 다중필터추가기능2020-01-22XLAM엑셀 VBA 명령문(UDF) 예제파일다운로드
34310[VBA예제] CreateTOC :: 목차 만들기 자동화예제파일2020-01-22XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
34307[VBA예제] CreateTOC :: 목차 만들기 자동화추가기능2020-01-22XLAM엑셀 VBA 명령문(UDF) 예제파일다운로드
34233[엑셀VBA함수] ImageLookup :: 실시간 이미지 불러오기 함수추가기능2020-01-07XLAM엑셀 UDF 시트함수 파일다운로드
34230[엑셀VBA함수] ImageLookup :: 실시간 이미지 불러오기 함수예제파일2020-01-07XLSM엑셀 UDF 시트함수 파일다운로드
34155[VBA예제] SortArray 명령문예제파일2020-01-05XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33847[VBA예제] MeasureRange 명령문예제파일2020-01-05XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33694[VBA예제] cvRng 명령문예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33682[VBA예제] vbFileSearch 명령문예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33659[VBA예제] ListFiles 명령문예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33643[VBA예제] IsInArray 명령문예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33620[VBA예제] SplitFileExt 명령문예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33596[VBA예제] ArrayDimensnion 명령문예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33027[VBA예제] Send_Email 메일 보내기 명령문예제파일2019-12-09XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33009[VBA예제] 줄바꿈 문제 해결 (엑셀 팁)예제파일2019-11-24XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
32057[VBA예제] Page_Setup :: 인쇄 페이지 레이아웃 설정예제파일2019-12-10XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
32029[엑셀VBA함수] DecodeURL :: URL 주소 한글/영문값으로 디코딩 반환예제파일2019-11-21XLSM엑셀 UDF 시트함수 파일다운로드
32009[엑셀VBA함수] EncodeURL :: 한글/영문 URL 주소 인코딩 변환예제파일2019-11-21XLSM엑셀 UDF 시트함수 파일다운로드
31425[VBA예제] ValidFileName :: 파일이름 사용가능여부 확인예제파일2019-12-10XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
31397[VBA예제] FileSequence :: 파일이름 순번으로 저장하기예제파일2019-12-10XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
31378[엑셀VBA함수] GetDesktopPath :: 사용자 바탕화면 경로 반환예제파일2019-12-10XLSM엑셀 UDF 시트함수 파일다운로드
31360[VBA예제] FileExists :: 선택경로 파일존재여부 확인예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
30522[VBA예제] isListBoxSelected :: 리스트박스 값선택여부 확인예제파일2019-12-10ZIP엑셀 VBA 명령문(UDF) 예제파일다운로드
인수 설명
인수/변수명데이터형식설명기본값
SortByLengthVariant시트를 분류할 기준을 입력합니다. (숫자 또는 기호)""
SortOrderLong시트 정렬 방향입니다. (1: 오름차순, -1: 내림차순, 0: 정렬안함)0
returnBtnBoolean[목차로 돌아가기] 링크 생성여부입니다.FALSE
BtnCellString목차로 돌아가기 링크를 생성할 셀 주소입니다."A1"
명령문 사용예제
'1. 통합문서 시트 순서 그대로 목차를 생성
CreateTOC

'2. 시트를 오름차순으로 정렬한 뒤 목차 생성
CreateTOC
  SortOrder:=1 
'3. 시트를 오름차순으로 정렬한 뒤, "-" 기호를 기준으로 분류
CreateTOC "-", 1
'4. 각 시트 B1 셀에 '목차로 돌아가기' 링크 생성
CreateTOC "-", 1, True, B1   
ImageLookup 함수 전체 코드

명령문 동작원리 단계별 알아보기

  1. 명령문에 사용될 변수를 설정합니다. 각 변수의 사용목적은 영상강의에서 자세히 설명드렸습니다.
  2. 통합문서 시트를 정렬하여 보관할 임시 배열을 생성합니다.
  3. 임시배열을 입력한 설정에따라 오름차순 또는 내림차순으로 정렬합니다. 배열 정렬에 사용된  SortArray 함수 설명은 관련포스트를 참고하세요.
  4. 목차가 입력될 시트의 이름 및 탭색상과 목차의 글꼴, 배경색, 글꼴크기 등을 수정하여 시트를 꾸며줍니다.
  5. 임시배열의 값을 하나씩 돌아가며 기준에 따라 분류한 뒤, 목차시트에 값을 추가합니다.
  6. '목차로 돌아가기' 링크삽입 여부가 True 일 경우, 모든 시트를 돌아가며 '목차로 돌아가기' 링크를 추가합니다.

링크] MS홈페이지 Application.DisplayGridlines 속성 설명 바로가기

별점주기 (5 / 2)

1
댓글 남기기

avatar
1 Comment Thereads
0 Thread replies
1 팔로워
 
가장 좋아요가 많은 댓글
가장 인기많은 댓글
1 작성자
솔 최근 작성자
  현재 페이지 댓글알림 신청  
알림 설정
솔
구독자
별점주기 :
     

열심히 공부하겠습니다.
질문 : 만약 시트명이 "002" 등으로 적용되었을 경우 이를 일반 서식으로 인식하여 숫자 2로 표시되는데 이를 개선할 수는 없나요?