본 내용은 Excel 2019 버전 기준으로 작성되었습니다.

 

특정 열에는 목차가 작성되고, 연속된 열에서 목차의 내용이 들어가는 경우에

 

목차의 내용에 따른 들여 쓰기 여백을 계산하는 매크로 프로그램

 

주의사항 1 : 현재 활성화된 시트에서 동작하며, 목차와 목차 내용은 연달에 있어야 합니다.

주의사항 2 : 목차는 점(.)으로 입력되어 있어야 합니다.

 

A B C D
  1 제목  
  1.1     부제목  
  1.1.1         내용  
  2 제목  
  2.1     부제목  

 

 

매크로 프로그램 실행방법

0. 파일 > 옵션 > 리본 사용자 지정 > 게발도구(선택) > 확인 

1. 개발도구 > 매크로(선택)

2. 매크로 이름에 Indent 입력 후, 만들기 선택

3. 아래 내용 복사, 붙여 넣기

4. 엑셀 > 개발도구 > 매크로 > Indent > 실행(선택)

 

Public Sub Indent()

    Dim cellRange As Range

    Dim count, duplicationCheck

    Dim init, spaceCount

    

    Dim inputCell, outoutCell, valueCell

    

    '입력된 컬럼 정보

    '컬럼은 순차적으로 붙여서 사용되어야 합니다. ex) A,B or B,C or C,D

    inputCell = "B"

    outputCell = "C"

 

    init = 4 '공백 기준은 4칸

    

    For Each cellRange In ActiveSheet.UsedRange.Columns(1).Cells

        

        count = Len(cellRange.Value) - Len(WorksheetFunction.Substitute(cellRange.Value, ".", ""))

        duplicationCheck = Len(Trim(cellRange.Offset(0, 1).Text)) - Len(WorksheetFunction.Substitute(cellRange.Offset(0, 1).Text, " ", 1))

        

        If (count > 0 And duplicationCheck >= 0) Then

            spaceCount = init * count

            cellRange.Offset(0, 1).NumberFormat = "@"

            cellRange.Offset(0, 1).Value = Space(spaceCount) + cellRange.Offset(0, 1).Text

        End If

    Next cellRange

    

End Sub