Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
글 전체 보기- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
글 전체 보기이 글의 목적은 엑셀에서 여러 창을 동시에 사용할 때 발생하는 대표적 문제를 체계적으로 진단하고 재현 가능한 해결 절차와 예방 설정을 제공하여 실무 환경에서 바로 적용 가능하도록 돕는 것이다.
엑셀 2013 이후 버전은 SDI(Single Document Interface) 구조를 채택하여 통합 문서마다 별도 창과 작업 표시줄 아이콘이 생성되는 구조이다. 같은 프로세스 내에서 창이 분리되어 보이나 내부적으로는 공통 리소스를 일부 공유한다. 반면 파일을 더블 클릭했을 때 설정이나 상황에 따라 별도의 엑셀 인스턴스가 추가 실행될 수 있다. 서로 다른 인스턴스는 클립보드·이벤트·추가 기능 로딩 상태가 독립적이라 교차 참조와 복사 붙여넣기 동작이 달라질 수 있다. 다중 모니터에서는 GPU 가속과 디스플레이 배율 차이로 렌더링 문제가 동반될 수 있다.
| 증상 | 원인 후보 | 즉시 조치 |
|---|---|---|
| 창이 각각 따로 열려 복사 붙여넣기가 안 됨 | 서로 다른 엑셀 인스턴스 실행, DDE 무시 옵션 활성화 | 옵션에서 DDE 사용 허용, 파일은 같은 인스턴스에서 열기 |
| 링크 수식이 #N/A 또는 값 고정 | 외부 통합 문서가 다른 인스턴스에서 열림 | 모든 파일을 동일 인스턴스에서 재오픈 |
| 여러 창에서 화면 깜박임·검은 화면 | 하드웨어 그래픽 가속 호환성 문제, 모니터 배율 불일치 | 가속 비활성화, 모니터 배율 통일, 그래픽 드라이버 업데이트 |
| 보기 나란히 비교/동기 스크롤이 안 됨 | 서로 다른 인스턴스에서 문서 열림 | 같은 인스턴스에서 새 창 기능으로 열기 |
| 개인용 매크로 통합문서(PERSONAL.XLSB) 충돌 | 다중 인스턴스에서 동시 로드 | 단일 인스턴스 사용 또는 로밍 위치 정리 |
| Alt+Tab 전환 시 창 사라짐처럼 보임 | 작업 표시줄 그룹화·최소화, 창 정렬 미설정 | 창 정렬(모두 정렬) 사용, 작업 표시줄 그룹화 해제 |
Application.Hwnd 값을 비교하여 창 핸들이 서로 다른 프로세스를 가리키는지 간접 확인한다.'즉석 판별 매크로: 같은 프로세스 내 창 수 확인 Sub CountWindows() Debug.Print "Workbooks:", Application.Workbooks.Count, _ "Windows:", Application.Windows.Count End Sub 서로 다른 인스턴스에서 열면 외부 링크의 자동 재계산이 제한될 수 있다. 모든 관련 통합 문서를 하나의 인스턴스에서 열도록 재정리한다. 계산 모드를 수식 → 계산 옵션 → 자동으로 설정한다. 데이터 탭의 연결 편집에서 대상 경로가 정확한지 확인한다.
'링크 강제 재계산 스니펫 Sub ForceRecalc() Application.CalculateFullRebuild End Sub 보기 → 창 → 나란히 보기는 같은 인스턴스의 창에서만 동작한다. 두 통합 문서를 동일 인스턴스에서 열고 창 제목 표시줄 색이 동일 테마로 표시되는지 확인한다. 동기화된 스크롤을 켠다.
보기 → 모두 정렬을 사용하여 나란히, 수직, 바둑판 중 선택한다. 활성 창만 정렬 옵션을 해제하면 모든 창을 균등 분할한다. Windows의 스냅 레이아웃(Win+화살표)을 병행하면 배치가 더 빠르다.
| 단축키 | 용도 |
|---|---|
| Alt + W, N | 새 창 만들기 |
| Alt + W, A | 모두 정렬 |
| Win + ←/→/↑/↓ | Windows 스냅 |
| Ctrl + Tab | 문서 창 전환 |
| Alt + Tab | 앱 창 전환 |
초대형 통합 문서의 대량 계산이나 장시간 매크로 실행을 격리하려면 의도적으로 별도 인스턴스로 실행한다. 이 경우 교차 링크와 동기 스크롤은 기대하지 않는다.
'다른 인스턴스로 분리 실행(테스트 목적) Sub OpenInNewInstance(ByVal p As String) Shell """" & Application.Path & "\EXCEL.EXE"" """ & p & """", vbNormalFocus End Sub 파일을 항상 기존 실행 중인 엑셀 인스턴스에서 열도록 강제하려면 GetObject를 이용한 헬퍼를 사용한다.
'기존 인스턴스를 찾아 열기(클래식 방식) Sub OpenInExistingInstance(ByVal p As String) Dim xl As Object On Error Resume Next Set xl = GetObject(, "Excel.Application") If xl Is Nothing Then Set xl = CreateObject("Excel.Application") xl.Visible = True End If xl.Workbooks.Open p End Sub 다중 인스턴스에서 동일 추가 기능이 중복 로딩되면 메뉴가 중복 표시되거나 이벤트가 두 번 실행될 수 있다. 파일 → 옵션 → 추가 기능에서 COM 추가 기능과 Excel 추가 기능을 분리 관리한다. 기업 배포 환경에서는 로드 동작을 로드 안 함 또는 요청 시로 맞춘다.
'작업 전후로 화면/이벤트/계산 최적화 Sub WithPerformance(ByVal work As String) Dim oldCalc As XlCalculation oldCalc = Application.Calculation Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual '여기에 작업 수행 Debug.Print work Application.Calculation = oldCalc Application.EnableEvents = True Application.ScreenUpdating = True End Sub Windows 스냅 레이아웃을 활용하여 각 창을 원하는 사분면으로 고정한다. 엑셀 종료 전에 마지막 배치를 유지하면 다음 실행 시 동일 배치로 복원될 가능성이 높다. 레지스트리 클린업 도구나 가상 데스크톱 전환은 복원 정보를 초기화할 수 있으므로 주의한다.
클라우드 공동 편집 중 여러 창을 열면 커서 표시와 변경 내용 병합이 지연될 수 있다. 동일 파일을 불필요하게 여러 창으로 열기보다 시트 분할이나 창 분할 기능을 우선 고려한다. 공동 편집 파일은 링크보다 표(테이블)와 데이터 모델을 경유한 참조가 안정적이다.
| 항목 | 체크 방법 | 주기 |
|---|---|---|
| DDE 무시 옵션 해제 | 파일 → 옵션 → 고급 확인 | 초기 설정 시 |
| 그래픽 가속 비활성화 | 디스플레이 섹션 체크 | 문제 발생 시 |
| 모니터 배율 통일 | Windows 디스플레이 설정 | 장비 변경 시 |
| 링크 대상 동일 인스턴스 | 파일 열기 경로 통일 | 작업 전 |
| 추가 기능 로드 정책 | COM/Excel 추가 기능 분리 관리 | 분기별 |
| 계산 모드 관리 | 자동↔수동 전환 기준 수립 | 프로젝트별 |
'두 창을 수직 정렬하고 동기 스크롤 켜기 Sub ArrangeAndSync() If Windows.Count < 2 Then ActiveWorkbook.NewWindow End If Application.Windows.Arrange ArrangeStyle:=xlVertical Application.CommandBars.ExecuteMso "WindowsSideBySide" Application.CommandBars.ExecuteMso "SynchronousScrolling" End Sub '두 파일을 같은 인스턴스에서 열고 나란히 비교 Sub OpenAndCompare(ByVal p1 As String, ByVal p2 As String) Workbooks.Open p1 Workbooks.Open p2 Application.Windows.Arrange xlVertical Application.CommandBars.ExecuteMso "WindowsSideBySide" End Sub 초대형 파일의 장시간 계산이나 대규모 매크로 실행을 다른 작업에 영향 없이 돌리고자 할 때 사용한다. 교차 링크·동기 스크롤·클립보드 형식 보존은 제한된다는 점을 감수해야 한다.
모든 관련 통합 문서를 동일 인스턴스에서 연다. 계산 옵션을 자동으로 두고, 연결 편집에서 대상 경로를 확인한다. 필요 시 Application.CalculateFullRebuild로 강제 재계산을 수행한다.
모니터 배율을 동일 값으로 맞추고 하드웨어 그래픽 가속을 끈다. 드라이버와 Office 업데이트를 최신으로 유지한다.
고급 옵션의 DDE 무시 체크를 해제하고, .xlsx의 기본 앱을 Excel로 재지정한다. 가능하면 실행 중 Excel의 파일 열기를 사용한다.
보기 → 새 창으로 같은 통합 문서의 두 번째 창을 만들고 모두 정렬로 배치한다. 각 창에서 서로 다른 시트나 영역을 선택하면 된다.
다중 인스턴스에서 동시에 로드되는 상황이다. 단일 인스턴스로 통합하거나 PERSONAL.XLSB 위치를 정리한다.