Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
조치 : 알 수 없는 통합문서·추가 기능은 격리 폴더로 이동하고, 필요 시 디지털 서명을 검토한 뒤에만 복귀시킨다.
추가 기능 차단
파일 → 옵션 → 추가 기능이다.
하단 “관리”에서 각각 Excel 추가 기능, COM 추가 기능, 자동화 추가 기능을 선택하고 이동한다.
불필요 항목 체크 해제 후 확인이다.
팁 : 기업 환경에서는 표준 화이트리스트(.xlam 해시 또는 서명 기반)를 유지하고, 사용자 임의 추가를 GPO로 제한한다.
MOTW(웹에서 내려받은 파일 표시)와 보호 보기
브라우저·메일에서 받은 파일은 “인터넷” 영역 표식(MOTW)을 가진다. 이 표식이 있을 경우 기본 정책이 매크로를 자동 차단한다.
파일 속성에서 “차단 해제”를 체크하면 표식이 제거된다. 자동 실행을 막으려면 차단 해제 금지를 사용자 지침에 포함한다.
보호 보기에서 인터넷에서 온 파일, 잠재적으로 안전하지 않은 위치 항목을 활성화하여 열기만 하고 편집·매크로는 차단한다.
개발자 관점: 코드에 ‘킬 스위치’ 내장
업무 자동화 통합문서라도 조건이 충족될 때만 실행되도록 방어 코드를 넣는다.
' ThisWorkbook 모듈 Private Sub Workbook_Open() On Error Resume Next If Sheets("Admin").Range("B1").Value <> "RUN" Then Exit Sub ' 필수 전처리... End Sub
' 표준 모듈 Public Sub Auto_Open() If Not AllowRun() Then Exit Sub ' 주 루틴... End Sub
Private Function AllowRun() As Boolean
On Error GoTo Quit
If Environ$("USERNAME") = "" Then GoTo Quit
If ThisWorkbook.ReadOnly Then GoTo Quit
If Sheets("Admin").Range("B2").Value = "STOP" Then GoTo Quit
AllowRun = True
Exit Function
Quit:
AllowRun = False
End Function
주의 : 사용 환경에서 Shift 우회가 가능하므로, 민감 작업은 추가 인증·서명 확인·서버 측 검증을 결합해야 한다.
프로그램으로 파일을 열 때 매크로 강제 비활성화
VBA 또는 외부 자동화에서 통합문서를 열 때 매크로를 강제로 꺼서 자동 실행을 원천 차단한다.
' VBA에서 다른 통합문서 열기 전 Sub OpenNoMacro() Dim prev As MsoAutomationSecurity prev = Application.AutomationSecurity Application.AutomationSecurity = msoAutomationSecurityForceDisable Workbooks.Open "C:\Risky.xlsm" Application.AutomationSecurity = prev End Sub
레지스트리로 강제 차단(개인·테스트용)
버전 16.x(Office 2016~Microsoft 365) 기준 키 경로 예시는 다음과 같다.