• 최초 작성일: 2025-01-24
  • 최종 수정일: 2026-09-27
  • 조회수: 13 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: VBA 파워 코딩 243회 - 자동 고침 목록

들어가기 전에

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

워크시트에 데이터를 입력하는데 '블랙슈가퍼펙트2X에센셜'이라는 긴 이름을 매번 입력하려면 힘이 듭니다. 예를 들어 'S1'이라고만 입력하면 전체 제품 이름이 자동으로 입력된다면 편리하겠죠?

셀에 'S1'이라고 입력하고 <Enter> 키를 누르면...
셀에 S1이라고 입력한 상태
아이엑셀러
Enter 키를 누르자 셀에 전체 제품 이름이 자동으로 입력된 모습
아이엑셀러

자동으로 전체 제품 이름이 입력되도록 하는 코드입니다.

'파일 - 옵션 - 언어 교정 - 자동 고침 옵션' 기능을 이용하면 VBA를 사용하지 않고도 가능은 합니다. 하지만 이번 시간에는 VBA 코딩을 통해 여러 개의 자동 고침 목록을 한꺼번에 추가하고 삭제하는 방법에 대해 알아보겠습니다.

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

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

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


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

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

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

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

제품 이름을 단축키로 입력하게 해주는 Code

핵심 요약: 자동 고침 목록을 VBA로 한꺼번에 추가하고 삭제하기

'추가List' 시트의 약어와 전체 이름을 Application.AutoCorrect.AddReplacement로 한꺼번에 등록하면 'S1'만 입력해도 긴 제품 이름이 자동으로 입력됩니다. 삭제는 DeleteReplacement를 사용합니다.

  • 추가: For Each로 '추가List' 시트 A열을 읽어 AddReplacement 실행
  • 삭제: ReplacementList 배열을 반복하며 DeleteReplacement 실행
  • 기능 끄기: Application.AutoCorrect.ReplaceText = False
  • 옵션 제어: TwoInitialCapitals 등의 속성으로 자동 고침 옵션을 켜고 끔

자동 고침 목록 추가

(1) 단축키로 설정할 제품 목록을 '추가List' 시트에 작성합니다. 헷갈리지 않을 자신이 있다면 얼마든지 더 많은 목록을 작성해두고 사용할 수 있습니다만, 5개 정도가 적당하지 않나 생각됩니다.

추가List 시트의 A열에 약어, B열에 전체 제품 이름을 작성한 모습
아이엑셀러

(2) VBE(Visual Basic Editor)로 가서 '삽입 - 모듈' 메뉴를 클릭하여 모듈을 삽입하고 다음 코드를 입력합니다. VBE로 어떻게 가냐구요? (이런...) 워크시트 상태에서 '개발 도구 - Visual Basic'을 클릭하거나 <Alt> + <F11> 키를 누르세요.

Sub AddAutoCorrectList()
    Dim shtSheet As Worksheet      ' 워크시트 개체에 접근하기 위한 개체 변수
    Dim rngCell As Range           ' For Each 문에서 사용할 개체 변수
    Dim intNum As Integer          ' 추가할 자동 고침 목록 수 저장을 위한 변수

    Set shtSheet = Worksheets("추가List")  ' 워크시트를 shtSheet 변수에 할당

    For Each rngCell In shtSheet.UsedRange.Columns(1).Cells
                  ' '추가List' 시트의 A열에서 값이 있는 셀 수만큼 For Each 문 반복 실행

        Application.AutoCorrect.AddReplacement rngCell, rngCell.Offset(0, 1)
                  ' AddReplacement 메서드를 이용하여 자동 고침 목록에 추가
                  ' 앞의 것(rngCell)을 뒤에 것(rngCell.Offset(0, 1))으로 대체
    Next rngCell
End Sub

자동 고침 목록 제거

빛이 있으면 어둠이 있고, 블랙홀이 있으면 화이트홀이 있듯, 자동 고침 목록을 추가하는 코드가 있다면 삭제하는 코드도 있을 것 같은 생각이 불현듯 드시지요?(빙고~~)

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

    ' DeleteReplacement 메서드를 이용하여 'S'자로 시작되는 자동 고침 목록이 있으면 제거
    For intNum = 1 To UBound(varList)
        If Left(varList(intNum, 1), 1) = "S" Then
            Application.AutoCorrect.DeleteReplacement varList(intNum, 1)
        End If
    Next intNum
End Sub

참고: 위 코드는 입력 내용이 'S'로 시작하는 자동 고침 항목을 모두 삭제합니다. 예제에서 추가한 항목 외에 이미 등록되어 있던 항목 중 'S'로 시작하는 것이 있으면 함께 삭제되니 주의하세요.

만약 '자동 고침' 기능 자체를 사용하지 않으려면 다음 코드를 사용하면 됩니다.

Application.AutoCorrect.ReplaceText = False

자동 고침 기능 속성 조정

워크시트 상태에서 '파일 - 옵션 - 언어 교정' 메뉴를 선택하고 '자동 고침 옵션' 버튼을 클릭하면 대화상자가 나타납니다. 자동 고침 기능의 여러 가지 속성 값을 이 대화상자를 통해 조정할 수 있습니다.

자동 고침 대화상자에서 자동 고침 옵션과 입력, 바꿀 내용 목록을 지정한 모습
아이엑셀러

다음은 자동 고침 기능의 속성 값을 VBA 코드를 통해 제어하는 코드입니다. False 값을 True로 바꾸면 위 대화상자의 각 항목을 체크해 준 것과 같은 효과가 나타나겠죠?

Sub AutoCorrectProperty()
    With Application.AutoCorrect
        .TwoInitialCapitals = True
        .CorrectSentenceCap = True
        .CapitalizeNamesOfDays = True
        .CorrectCapsLock = True
    End With
End Sub

등록된 '자동 고침 목록' 모두 보기

내 컴퓨터에 등록되어 있는 '자동 고침 목록'을 모두 표시하려면 다음 코드를 사용하세요.

Sub ShowAutoCorrectList()
    Dim varList As Variant
    Dim intNum As Integer

    varList = Application.AutoCorrect.ReplacementList    ' 등록된 자동 고침 목록을 배열로 가져옴
    Worksheets.Add                                       ' 결과를 표시할 새 워크시트 추가

    For intNum = 1 To UBound(varList)
        Cells(intNum, 1) = varList(intNum, 1)            ' 입력할 내용
        Cells(intNum, 2) = varList(intNum, 2)            ' 바꿀 내용
    Next intNum
End Sub

참고: 코드 재구성

이 부분의 원문에는 위의 AddAutoCorrectList 코드가 그대로 한 번 더 복사되어 있었습니다. 목록을 표시한다는 설명에 맞추어, 삭제 코드에서 쓴 Application.AutoCorrect.ReplacementList를 새 워크시트에 나열하는 예시 코드로 다시 작성했습니다. 원본 코드와 다를 수 있습니다.

참고: 이미지에 대하여

이 글은 원래 네이버 포스트에 게재되었던 글로, 네이버 포스트 서비스 종료로 네이버 블로그로 옮기는 과정에서 원본 이미지가 소실되었습니다. 위 이미지는 본문 설명을 바탕으로 당시 화면 구성을 재구성한 예시 이미지이며, 실제 엑셀 화면과 세부 디자인(버전별 UI)은 다를 수 있습니다. S1을 제외한 제품 이름과 대화상자의 항목 문구는 예시입니다.

정리 — 자동 고침 관련 VBA 코드

하려는 일 코드
목록 추가 Application.AutoCorrect.AddReplacement 입력, 바꿀 내용
목록 삭제 Application.AutoCorrect.DeleteReplacement 입력
목록 가져오기 Application.AutoCorrect.ReplacementList (2차원 배열)
자동 고침 끄기 Application.AutoCorrect.ReplaceText = False
옵션 속성 제어 .TwoInitialCapitals, .CorrectSentenceCap, .CapitalizeNamesOfDays, .CorrectCapsLock

자주 묻는 질문 (FAQ)

Q1. 짧은 약어를 입력하면 긴 제품 이름이 자동으로 입력되게 하려면 어떻게 하나요?

'파일 - 옵션 - 언어 교정 - 자동 고침 옵션'에서 목록을 등록하면 됩니다. 여러 개를 한꺼번에 등록하려면 VBA에서 Application.AutoCorrect.AddReplacement 메서드를 반복 실행합니다.

Q2. VBA로 등록한 자동 고침 목록을 삭제하려면 어떻게 하나요?

Application.AutoCorrect.ReplacementList로 목록을 배열에 담아 반복하면서 DeleteReplacement 메서드로 삭제합니다. 예제는 'S'로 시작하는 항목을 삭제합니다.

Q3. 자동 고침 기능 자체를 사용하지 않으려면 어떻게 하나요?

Application.AutoCorrect.ReplaceText = False를 실행하면 됩니다.

마치며

자주 쓰는 긴 이름은 자동 고침 목록에 한꺼번에 등록해 두면 입력이 훨씬 빨라집니다. 제품 목록을 만들어 직접 등록해 보세요!
VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 사이트 정문 왼쪽에 있는 'VBA 강좌 - VBA 입문강좌'를 읽어보시면 이해가 빠릅니다.