• 최초 작성일: 2002-01-25
  • 최종 수정일: 2026-09-30
  • 조회수: 9 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 자동고침 기능 응용 예제

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

'도구' 메뉴에 보면 '자동 고침 옵션'이라는 메뉴가 있습니다. 이것은 아주 예전에(X0088 강좌로군요. 그러고 보니 2년도 훨씬 넘었습니다 ^^) 소개해 드린 편리한 기능인데 많이들 사용하시나 모르겠습니다.

데이터를 입력할 때 "아이오페 스팟 솔루션"이라는 긴 이름을 매번 다 적으려면 힘이 들겠지요? 이런 경우에 "자동 고침 목록"에 등록을 해 두면 "아이"라고만 입력해도 전체 상품명이 자동으로 다 입력이 되므로 매우 편리합니다. 아래의 셀에다가 '아이'라고만 입력하고 엔터키를 쳐 보세요.

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 대표 직강 1강 무료

🎁 파워툴스 마스터클래스 · 엑셀 바이브 코딩

AI에게 말로 지시해서 '나만의 엑셀 도구'를 만들고 리본에 장착합니다.

  • 코딩 지식 없이 시작 · 코드는 AI가 작성
  • 엑셀 리본에 내 탭과 버튼을 만들고 XLAM으로 공유
  • 1강 무료 수강 가능
수강 신청하기 강의 소개 보기

자동고침 기능 응용 예제

핵심 요약: 자동 고침 목록 관리

ReplacementList로 등록된 자동 고침 목록을 배열로 읽고, AddReplacement와 DeleteReplacement로 시트에 정리한 목록을 한꺼번에 추가하거나 지울 수 있습니다.

  • 1단계: ReplacementList를 읽어 새 시트에 입력 문장과 고쳐질 문장을 나열합니다.
  • 2단계: 추가List 시트의 목록을 AddReplacement로 등록합니다.
  • 3단계: 특정 조건(예: L로 시작)의 항목을 DeleteReplacement로 삭제합니다.

Step 1: 자동 고침 목록 살펴보기

그러면 어떤 자동 고침 목록들이 현재 등록되어 있나 살펴보도록 할까요?

엄청나게 많은 목록들이 나타나지요? 어떤 목록들이 들어있나 알아보기 위해 아래와 같은 코드를 사용하였습니다.

Sub ViewAutoCorrectObject()
    Dim intX As Integer
    Dim varList As Variant
    On Error Resume Next
    Application.DisplayAlerts = False

    Worksheets("등록된 자동고침 목록").Delete
    Worksheets.Add.Name = "등록된 자동고침 목록"
    On Error GoTo 0
    '''동일한 시트가 있나없나 확인을 하는 또다른 방법입니다. 대개의 경우, For Each ~ Next
    '''순환문을 사용하여 일일이 검색을 하지만 위와 같이 On Error 문을 사용할 수도 있습니다.

    [A1:B1] = Array("입력하는 문장", "자동으로 고쳐지는 문장")
    varList = Application.AutoCorrect.ReplacementList
    For intX = 1 To UBound(varList)
        With [A1]
            .Offset(intX, 0) = varList(intX, 1)
            .Offset(intX, 1) = varList(intX, 2)
        End With
    Next intX
    Cells.Columns.AutoFit
    Cells.Font.Name = "바탕체"
    [A1].CurrentRegion.AutoFormat Format:=xlRangeAutoFormatList2, Number:=True, Font:= _
        True, Alignment:=True, Border:=True, Pattern:=True, Width:=True
    MsgBox "모두 " & UBound(varList) & "개의 자동 고침 목록이 등록되어 있습니다!" _
        , , "목록 작성 완료//By Exceller"
    Application.DisplayAlerts = True
End Sub

목록을 넣을 시트가 이미 있는지 확인하는 부분에서는 On Error 문을 사용하였습니다. 동일한 시트가 있나 없나 확인을 하는 또다른 방법입니다. 대개의 경우, For Each ~ Next 순환문을 사용하여 일일이 검색을 하지만 위와 같이 On Error 문을 사용할 수도 있습니다.

Step 2: 나만의 목록 추가하기

만약 팀원들간에 공통으로 사용하는 목록을 별도의 시트에 만들어 두고 이것을 사용할 수도 있겠지요? 예를 들어, 옆에 있는 '추가List'라는 시트에 자기 팀원들이 사용하는 리스트들을 등록해 두고 함께 사용할 수도 있습니다. 마치 야구에서 감독이 선수들에게 자기들만 아는 싸인을 사용하여 지시를 내리듯이 미리 리스트를 정의해 두고 사용할 수 있게 되는 것입니다.

입력하는 문장(A열)자동으로 고쳐지는 문장(B열)
L1아이오페
L2라네즈
L3마몽드
L4스템3
L5헤라
L6설화수
L7이니스프리
L8미로잎섬
L9베리떼
L10리리코스
Sub AddDataToAutoCorrect()
    Dim shtSheet As Worksheet
    Dim rngCell As Range
    Dim intNum As Integer
    Dim Msg As String
    Set shtSheet = Worksheets("추가List")
    intNum = shtSheet.Columns(1).SpecialCells(xlTextValues).Count

    For Each rngCell In shtSheet.UsedRange.Columns(1).Cells
        Application.AutoCorrect.AddReplacement rngCell, rngCell.Offset(0, 1)
        '''추가List 시트의 첫번째 열에 있는 데이터들을 AddReplacement 메서드를 사용하여
        '''추가를 해 줍니다.

    Next rngCell
    Msg = Msg & shtSheet.Name & "시트에 있는 " & vbCr
    Msg = Msg & intNum & "개의 목록이 추가되었습니다"
    MsgBox Msg, , "목록 추가 완료//By Exceller"
End Sub

추가List 시트의 첫번째 열에 있는 데이터들을 AddReplacement 메서드를 사용하여 추가를 해 줍니다.

Step 3: 추가한 목록 삭제하기

마지막으로… 이런 식으로 추가한 목록들을 삭제하는 방법에 대해서 살펴보도록 합니다.

Sub DeleteDataFromAutoCorrect()
    Dim varList As Variant
    Dim intNum As Integer
    varList = Application.AutoCorrect.ReplacementList

    For intNum = 1 To UBound(varList)
        If Left(varList(intNum, 1), 1) = "L" Then
            Application.AutoCorrect.DeleteReplacement varList(intNum, 1)
        End If
    Next intNum
End Sub

추가 목록을 삭제하는 코드는 전혀 어려운 부분이 없을 것입니다. 혹시 L로 시작되는 추가 목록을 이미 작성해 두신 분이 있을 경우를 대비하여 목록 삭제 코드는 버튼에 연결해 두지 않았습니다. 코드를 응용하여 사용하시기 바랍니다.

자동 고침 기능에 대해 생각나는 것은 이 정도로군요. 많이 응용해 보시고 다른 좋은 아이디어가 생각나시는 분은 알려주세요.

오늘은 여기까지… 즐거운 주말 되시기를…

정리 — 자동 고침 관리 핵심

구분 사용한 코드 역할
목록 읽기 Application.AutoCorrect.ReplacementList 등록된 목록을 2차원 배열로 반환
목록 추가 AutoCorrect.AddReplacement 입력, 교체 자동 고침 항목 등록
목록 삭제 AutoCorrect.DeleteReplacement 입력 자동 고침 항목 삭제
시트 존재 확인 On Error Resume Next + Delete 동일 이름 시트 제거 후 재생성
개수 세기 SpecialCells(xlTextValues).Count 추가할 목록 개수

자주 묻는 질문 (FAQ)

Q1. 자동 고침 목록은 어디에서 설정하나요?

도구 메뉴의 자동 고침 옵션에서 설정하며, 예를 들어 "아이"를 입력하면 긴 상품명이 자동으로 입력되도록 등록해 둘 수 있습니다.

Q2. VBA로 자동 고침 목록을 한꺼번에 추가할 수 있나요?

시트에 입력할 문장과 바뀔 문장을 정리해 두고 AutoCorrect.AddReplacement 메서드로 반복 등록하면 됩니다.

Q3. 추가한 목록을 삭제하려면 어떻게 하나요?

ReplacementList로 읽은 목록을 순환하면서 조건에 맞는 항목을 DeleteReplacement 메서드로 삭제합니다. 예제는 L로 시작하는 항목을 삭제합니다.

마치며

팀원들이 함께 사용하는 자동 고침 목록을 시트로 관리하면 마치 야구에서 감독이 선수들에게 사인을 주듯 약속된 입력을 빠르게 공유할 수 있습니다.