Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
32비트 vs 64비트: 64비트 Excel 전용 ODBC 드라이버나 COM 추가 기능은 32비트 Office에서 동작하지 않는다. 동일 아키텍처로 맞추거나 해당 구성 요소를 재설치한다.
언어 팩: 지역 설정·글꼴 차이로 글자 깨짐이 발생할 수 있다. 언어 팩과 폰트를 맞춘다.
Mac vs Windows: ActiveX 컨트롤, 일부 OLE 개체는 Mac에서 동작하지 않는다. 폼 컨트롤로 교체한다.
권장 변환 전략
원본 보존: 버전별 폴더를 분리하고 원본을 읽기 전용으로 보관한다.
기능 축소 저장: 최저 버전에 맞춰 호환성 검사 후 .xlsx 또는 필요 시 .xls로 저장한다.
대용량·매크로 파일: .xlsb 채택으로 성능과 용량을 개선한다.
자동 변환 파이프라인: VBA로 일괄 변환 스크립트를 작성한다.
VBA로 일괄 변환하는 방법
다음 코드는 폴더 내 모든 파일을 열어 xlsx로 저장한다.
Sub BatchConvertToXlsx() Dim fso As Object, folder As Object, file As Object Dim srcPath As String, dstPath As String srcPath = "C:\Temp\source\" dstPath = "C:\Temp\converted\" Set fso = CreateObject("Scripting.FileSystemObject") If Not fso.FolderExists(dstPath) Then fso.CreateFolder dstPath For Each file In fso.GetFolder(srcPath).Files If LCase(fso.GetExtensionName(file)) = "xls" Or _ LCase(fso.GetExtensionName(file)) = "xlsx" Or _ LCase(fso.GetExtensionName(file)) = "xlsm" Or _ LCase(fso.GetExtensionName(file)) = "xlsb" Then Application.DisplayAlerts = False Workbooks.Open file.Path ActiveWorkbook.SaveAs dstPath & fso.GetBaseName(file) & ".xlsx", FileFormat:=51 ActiveWorkbook.Close False Application.DisplayAlerts = True End If Next file End Sub
주의 : 매크로가 포함된 통합 문서는 기능이 제거되므로 xlsm 보존본도 함께 남겨야 한다.
보안·권한 이슈 해결
차단 해제: Windows에서 파일 속성 → 차단 해제 체크 후 적용한다.
신뢰 위치: 파일 → 옵션 → 신뢰 센터 → 신뢰 센터 설정 → 신뢰할 수 있는 위치에 폴더를 추가한다.
IRM/암호화: 조직 외 사용자에게 공유 시 IRM을 제거하고 표준 암호로 다시 저장한다.