Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
글 전체 보기- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
글 전체 보기이 글의 목적은 엑셀에서 Add-in(애드인)이 충돌을 일으킬 때 문제를 빠르게 진단하고 안전하게 해결하는 실무 절차와 체크리스트를 제공하는 것이다.
충돌 증상을 유형별로 구분하면 원인 추적 속도가 빨라진다. 아래 표를 먼저 확인하여 현재 증상에 맞는 진단 루트를 선택한다.
| 주요 증상 | 가능 원인 | 우선 조치 |
|---|---|---|
| 엑셀 시작 지연·멈춤 | COM 추가 기능의 초기화 지연, 서명 검증 실패, 네트워크 의존 Add-in | 안전 모드 부팅→COM 추가 기능 비활성화→서명·네트워크 점검 |
| 특정 메뉴 클릭 시 강제 종료 | .xll 네이티브 Add-in 충돌, 버전 불일치 | 문제 Add-in 격리 로드→대체 버전 테스트 |
| 파일 저장/닫기 시 응답 없음 | 이벤트 훅을 거는 VBA/.xlam, DDE/외부 연결 | 해당 Add-in 제거 후 재현 테스트→DDE 차단 |
| 리본 탭 사라짐·회색 | LoadBehavior=2(비활성), 신뢰센터 정책 | 레지스트리 LoadBehavior=3 복구→신뢰 위치 설정 |
| PC 계정 변경 시만 오류 | 사용자 프로필 경로 바인딩, 권한 부족 | 사용자별 경로 수정, 서명 재신뢰 |
Add-in의 유형을 구분하면 진단 순서를 최적화할 수 있다.
excel /safe 입력 후 시작한다.| 단계 | 점검 항목 | 합격 기준 | 실패 시 조치 |
|---|---|---|---|
| 1 | 안전 모드 재현 여부 | 안전 모드 정상 동작 | 정상→Add-in 원인 가정, 비정상→엑셀 자체·프로필 손상 의심 |
| 2 | COM 추가 기능 일괄 비활성화 | 문제 사라짐 | 하나씩 활성화하여 트리거 Add-in 특정 |
| 3 | .xlam/.xll 개별 비활성화 | 문제 사라짐 | 버전 교체·경로 이동·신뢰 위치 등록 |
| 4 | 네트워크 의존성 체크(프록시/TLS) | 오프라인에서도 안정 동작 | 엔드포인트 화이트리스트·프록시 예외 |
| 5 | 서명·매크로 정책 확인 | 신뢰된 게시자, 매크로 허용 정책 준수 | 디지털 서명 재배포, 신뢰센터 정책 조정 |
| 6 | 충돌 재현 로그 수집 | 이벤트 로그·시간대 일치 | 문제 Add-in 공급사에 로그 전달 |
COM 추가 기능 자동 로드는 다음 레지스트리 키와 값으로 제어한다.
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\<ProgID>\LoadBehavior 값 3: 자동 로드, 2: 비활성이다.HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Excel\Addins\<ProgID>\LoadBehavior 시스템 전체 정책으로 적용된다.PowerShell로 현재 상태를 점검한다.
# 사용자 범위 COM 추가 기능 상태 조회 Get-ChildItem "HKCU:\Software\Microsoft\Office\Excel\Addins" ` | ForEach-Object { [PSCustomObject]@{ ProgID = $_.PSChildName LoadBehavior = (Get-ItemProperty $_.PsPath).LoadBehavior } }
시스템 범위
Get-ChildItem "HKLM:\Software\Microsoft\Office\Excel\Addins" `
| ForEach-Object {
[PSCustomObject]@{
ProgID = $.PSChildName
LoadBehavior = (Get-ItemProperty $.PsPath).LoadBehavior
}
}
비활성(2)인 항목을 자동 로드(3)로 복구
Set-ItemProperty "HKCU:\Software\Microsoft\Office\Excel\Addins\Your.Addin.ProgID" -Name LoadBehavior -Value 3
충돌이 아닌 체감 지연 문제는 다음 순서로 완화한다.
문제 고정화를 위한 필수 로그는 다음과 같다.
'VBA: 엑셀 시작 후 Add-in 초기화 시간 로깅 예시 #If VBA7 Then Private Declare PtrSafe Function GetTickCount Lib "kernel32" () As Long #Else Private Declare Function GetTickCount Lib "kernel32" () As Long #End If
Sub LogAddinInit()
Dim t As Long: t = GetTickCount()
' Add-in 초기화 호출
' ...
Debug.Print "Init(ms): "; GetTickCount() - t
End Sub
| 조건 | 가능 원인 | 검증 방법 | 처방 |
|---|---|---|---|
| 안전 모드 OK, 정상 모드 실패 | Add-in 영향 | 개별 활성화 재현 | 문제 Add-in 업데이트 또는 제거 |
| 모든 사용자에서 동일 증상 | HKLM 정책, 공용 배포 버그 | 서버·GPO 비교 | 배포 롤백·패치 적용 |
| VPN 연결 시만 지연 | 엔드포인트 차단·DNS 지연 | Fiddler/프록시 로그 | 화이트리스트·DNS 고정 |
| 64비트 엑셀에서만 오류 | .xll 32비트 호환만 제공 | 비트수 확인 | 64비트 빌드로 교체 |
Contoso.Addin.1.4.2.xlam 형태로 롤백이 쉽다..dmp 자동 수집 옵션을 구성한다.# 안전 모드 실행(Windows) Win + R -> excel /safe
COM 추가 기능 대화상자 열기
파일 -> 옵션 -> 추가 기능 -> 관리: COM 추가 기능 -> 이동
레지스트리 백업
reg export "HKCU\Software\Microsoft\Office\Excel\Addins" "%USERPROFILE%\Desktop\excel_addins_backup.reg"
Office 온라인 복구(클릭-투-런)
appwiz.cpl -> Microsoft 365 -> 변경 -> 온라인 복구
excel /safe 실행 후 문제가 사라지는지 확인한다.제목: 엑셀 Add-in 충돌 보고서 사용자/부서: PC 사양/OS/엑셀 버전: Add-in 유형/버전/배포 경로: 증상(정확한 메시지/영상 링크): 재현 절차(숫자 목록): 시도한 조치(성공/실패): 로그/이벤트ID: 요청 사항(업데이트/롤백/정책 변경): 레지스트리의 LoadBehavior가 2로 변경되었을 가능성이 크다. HKCU 및 HKLM의 해당 ProgID에서 LoadBehavior를 3으로 복구하고, 충돌 원인이 되는 다른 Add-in 또는 GPO 정책을 점검한다.
엑셀 비트수와 .xll 빌드가 일치해야 한다. 64비트 엑셀에는 64비트 .xll만 사용해야 하며, 누락된 런타임 의존성도 점검한다.
GPO 또는 HKLM 정책으로 강제 로드 중일 수 있다. IT 관리 콘솔에서 해당 정책을 일시 해제하고 문제 재현 후 로그를 수집한다.
프로필 손상이나 엑셀 자체 문제 가능성이 있다. 새 사용자 프로필로 로그인하여 재현을 확인하고, 필요 시 Office 온라인 복구를 수행한다.
인증서 체인이 신뢰되지 않거나 만료되었을 수 있다. 인증서 저장소에 루트/중간 인증서를 추가하고 게시자를 신뢰로 등록한다.