본문 바로가기
#2 엑셀 오류 가이드

엑셀에서 자동 고침(AutoCorrect) 기능이 특정 시트에서만 작동 안 할 때

by 이세계의엑셀 2025. 5. 1.
반응형

엑셀을 사용하다 보면 자주 입력하는 단어나 문장을 자동으로 고쳐주는 자동 고침(AutoCorrect) 기능이 큰 도움이 됩니다. 그런데 간혹 이 기능이 특정 시트에서만 비활성화된 것처럼 보이는 현상이 발생할 때가 있습니다. 설정을 확인해봐도 전체적으로는 켜져 있는데 유독 일부 시트에서만 작동하지 않는 경우라면, 당황스럽고 작업 흐름에도 영향을 줄 수밖에 없습니다.

이번 포스팅에서는 엑셀 자동 고침 기능이 특정 시트에서만 작동하지 않을 때의 원인과 해결 방법을 VBA 코드 예시와 함께 상세하게 안내하겠습니다.


자동 고침이 시트마다 다르게 작동하는 이유

엑셀의 자동 고침(AutoCorrect)은 기본적으로 애플리케이션 전체 수준에서 적용되는 설정입니다. 그런데 다음과 같은 상황에서는 특정 워크시트에서만 자동 고침이 작동하지 않는 것처럼 느껴질 수 있습니다:

  • 시트에 데이터 유효성 검사(Data Validation)가 걸려 있는 경우
  • 병합 셀(Merged Cell)에서 입력 중인 경우
  • 시트가 보호(Protect Sheet)되어 있어 자동 고침 반영이 제한되는 경우
  • VBA 또는 외부 애드인(Add-In)이 자동 고침 기능을 일시적으로 끄는 경우
  • 자동 고침이 텍스트가 아닌 숫자/수식 입력일 때는 적용되지 않음

반응형

자동 고침 작동 여부 확인하는 방법

1. 엑셀 설정에서 자동 고침 옵션 확인하기

  1. [파일] → [옵션] → [언어 교정] → [자동 고침 옵션] 으로 이동합니다.
  2. 자동 고침 항목 중 "두 번 대문자를 소문자로 변경"이나 사용자 정의 교정 항목이 제대로 설정되어 있는지 확인합니다.

2. 시트 보호 여부 확인

시트 보호가 걸려 있다면 자동 고침이 제한될 수 있습니다. 아래 VBA 코드를 활용하면 해당 시트의 보호 여부를 한 번에 확인할 수 있습니다:

Sub CheckSheetProtection()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        If ws.ProtectContents = True Then
            MsgBox "시트 '" & ws.Name & "'는 보호되어 있습니다.", vbInformation
        Else
            MsgBox "시트 '" & ws.Name & "'는 보호되어 있지 않습니다.", vbInformation
        End If
    Next ws
End Sub

특정 시트에서 자동 고침이 안 되는 현상을 해결하는 5가지 방법

1. 시트 보호 해제

Sub UnprotectAllSheets()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        On Error Resume Next
        ws.Unprotect Password:="암호없으면빈칸"
        On Error GoTo 0
    Next ws
    MsgBox "모든 시트 보호 해제 완료"
End Sub

시트가 보호된 상태에서는 자동 고침이 제한적으로 동작할 수 있으므로, 위 코드를 사용해 시트를 잠시 해제해보세요.


2. 병합 셀 입력 문제 우회

병합된 셀에 입력할 경우 자동 고침이 안 되는 경우가 많습니다. 이럴 땐 입력 전에 셀 병합을 해제해보세요:

Sub UnmergeAndSelect()
    With Selection
        If .MergeCells Then
            .UnMerge
            MsgBox "병합이 해제되었습니다. 자동 고침 적용 여부를 다시 확인하세요.", vbInformation
        End If
    End With
End Sub

3. 데이터 유효성 검사 제거

입력 셀에 유효성 검사가 걸려 있으면 자동 고침이 제한될 수 있습니다. 다음 코드를 통해 모든 유효성 검사를 제거할 수 있습니다:

Sub RemoveDataValidation()
    Dim rng As Range
    On Error Resume Next
    Set rng = Selection.SpecialCells(xlCellTypeAllValidation)
    If Not rng Is Nothing Then
        rng.Validation.Delete
        MsgBox "선택된 셀의 유효성 검사가 제거되었습니다."
    Else
        MsgBox "유효성 검사가 설정된 셀이 없습니다."
    End If
End Sub

4. 외부 애드인 또는 VBA가 자동 고침을 비활성화한 경우

엑셀을 확장하기 위해 사용한 VBA 코드 또는 애드인 중 일부는 자동 고침 기능을 꺼놓는 경우도 있습니다. Application.AutoCorrect.ReplaceText 설정을 강제로 활성화할 수 있습니다:

Sub ForceEnableAutoCorrect()
    Application.AutoCorrect.ReplaceText = True
    MsgBox "자동 고침 기능이 다시 활성화되었습니다."
End Sub

5. 시트 이벤트로 인해 무시되는 경우

워크시트의 Change, SelectionChange 이벤트에서 강제로 입력값을 조작하면 자동 고침이 적용되지 않을 수 있습니다. 아래와 같이 기존 이벤트 코드를 확인하거나 비활성화하여 원인을 파악해 보세요:

' 워크시트 이벤트 해제 (모듈에서 실행)
Sub DisableEventsTemporarily()
    Application.EnableEvents = False
    MsgBox "이벤트 비활성화 완료. 자동 고침 기능이 정상 작동하는지 확인해보세요."
End Sub

' 다시 켤 땐 아래 코드 사용
Sub EnableEventsAgain()
    Application.EnableEvents = True
    MsgBox "이벤트 활성화 완료."
End Sub

요약: 자동 고침이 안 되는 시트의 점검 리스트

점검 항목 확인 방법 또는 조치
시트 보호 보호 해제 (Unprotect)
병합 셀 병합 해제 후 입력
유효성 검사 유효성 제거 (Validation.Delete)
외부 VBA 또는 애드인 Application.AutoCorrect.ReplaceText = True 설정 확인
이벤트로 인한 간섭 Application.EnableEvents = False 로 임시 비활성화

마무리하며: 엑셀 자동 고침 기능이 특정 시트에서만 작동 안 할 때

엑셀에서 자동 고침(AutoCorrect) 기능이 특정 시트에서만 비활성화된 것처럼 느껴지는 경우는 대부분 보호 상태, 병합 셀, 유효성 검사 또는 VBA 이벤트로 인한 간섭 때문입니다. 위에서 소개한 VBA 코드와 점검 리스트를 차례로 적용하면 문제 원인을 쉽게 찾아내고 해결할 수 있습니다.

작업 흐름을 막는 이러한 이슈는 사소해 보여도 반복되면 매우 불편합니다. 지금 이 포스팅을 참고해 엑셀 자동 고침 문제를 깔끔하게 해결해보세요.

반응형