티스토리 뷰
HowTo - 엑셀 파일이 손상되어 열리지 않을 때 복구 또는 데이터 추출하는 방법
Microsoft Excel 사용 중 문서 공유화 상태에서 다수의 사용자가 동시에 저장하거나, 메신저 공유 후 방금 전까지 열렸던 문서가 파일이 손상되었는지 엑셀 프로그램만 실행되고 문서가 열리지 않는 경우가 간혹 있습니다.
이러한 문제는 사용하는 시스템 환경도 제각기 다르고 워낙 다양한 경우의 수가 많기 때문에 정확한 원인 및 조치 방법을 확인하기 어렵습니다. 물론 일반적으로 해당 파일의 권한 등을 먼저 확인하여, 권한이 모든 사용자에게 편집 및 수정 권한이 있는 경우라면 파일 손상도 의심해 볼 수 있습니다.
따라서 다음과 같이 엑셀 파일의 손상이 의심될 때 보안 옵션 해제 및 복구 기능을 이용하거나, 셀 스타일이 사용자가 직접 정의한 이름이 아닌 경우 셀 스타일 정보를 삭제 및 수정하여 복구하는 방법을 이용해 볼 수 있습니다.
Microsoft Excel 파일이 열리지 않을 때 손상된 문서 복구 및 데이터 추출 방법
엑셀 파일을 실행할 때 프로그램 실행만 되고 엑셀 시트가 열리지 않을 때 먼저 제한된 보기 옵션을 비활성화하거나, 다른 프로그램과의 충돌로 열리지 않을 경우 Microsoft 관련 서비스만 남겨두고 모두 동작하지 않도록 설정한 다음 실행해 볼 수 있습니다.
만약 엑셀 파일이 손상된 것으로 의심된다면 데이터 복구 및 추출 기능을 사용할 수 있으며, 마지막으로 Visual Basic 코드를 이용하여 이름 관리자 및 스타일을 모두 제거하여 기본 스타일로 시도할 수 있습니다. 방법은 다음과 같습니다.
인터넷에서 다운로드한 엑셀 파일의 경우 문서 보안 기능으로 인하여 시트가 정상적으로 열리지 않는 경우가 종종 있습니다. 물론 일반적으로는 문서 상단에 이러한 인터넷에서 가져온 파일의 제한된 보기 주의 메시지가 표시되며, 편집이 필요할 경우 버튼 클릭 한 번으로 해결할 수 있습니다.
엑셀 프로그램 실행 후 상단의 [파일] 메뉴 클릭 후 [옵션]을 선택합니다. 'Excel 옵션' 팝업 창이 열리면 왼쪽 사이드 바에서 [보안 센터] 탭 선택 후 [보안 센터 설정(T)] 버튼을 클릭합니다.
'보안 센터' 설정 화면에서 [제한된 보기] 탭 클릭 후 "제한된 보기" 섹션의 모든 항목에 대하여 체크 박스를 선택 해제 합니다.
- 인터넷에서 가져온 파일에 대해 제한된 보기 사용(I)
- 안전하지 않은 위치에 있는 파일에 대해 제한된 보기 사용(L)
- Outlook 첨부 파일에 대해 제한된 보기 사용(O)
만약 다른 프로그램과의 충돌로 인하여 발생하는 문제라면 Windows 시스템의 서비스 및 시작 프로그램 설정을 변경하여 Microsoft 제품군을 제외한 모든 프로그램을 사용 하지 않도록 설정한 뒤 실행 여부를 확인할 수 있습니다.
키보드 단축키 Win + R 키를 누르고 실행 대화 상자에서 "msconfig" 입력 후 Enter 키를 눌러 "시스템 구성"을 엽니다.
시스템 구성 창에서 [서비스] 탭 이동 후 하단의 "모든 Microsoft 서비스 숨기기(H)" 체크 박스 선택 후 [모드 사용 안 함(D)] 버튼을 클릭합니다.
다음은 [시작 프로그램] 탭으로 이동한 다음 "작업 관리자 열기"를 클릭합니다.
작업 관리자에서 [시작프로그램] 탭으로 이동하면 현재 구동되고 있는 시작 프로그램 목록을 확인할 수 있습니다. 현재 사용하고 있는 항목에 대해서도 마찬가지로 [사용 안 함(A)]을 클릭하고 시스템을 다시 시작합니다.
엑셀 프로그램의 데이터 복구 및 추출 기능을 사용하여 파일을 복구할 수도 있습니다. 다만 원본 파일의 경우 복구 과정에서 손상될 수 있으므로, 별도의 사본 파일을 준비하여 수행하시는 것이 좋습니다.
엑셀 프로그램 실행 후 [파일] 탭 클릭 후 [열기 > 찾아보기] 메뉴를 선택합니다.
파일 열기 팝업 창에서 [열기(O)] 버튼 옆의 ▼ 화살표를 클릭하면 다양한 옵션을 사용할 수 있습니다. 여기서 [열기 및 복구(E)] 메뉴를 선택합니다.
손상된 엑셀 파일을 복구하거나 데이터를 추출할 수 있습니다. 먼저 [복구(R)] 버튼을 클릭하여 진행하고, 복구 완료 후 원본과 다르게 복구되었다면, [데이터 추출(E)] 버튼을 한 번 더 클릭합니다.
데이터 추출 옵션을 사용하면 값만 변환할 것인지 수식을 모두 복구할 것인지 묻습니다. [값으로 변환(C)] 옵션을 선택할 경우 수식으로 계산된 결과 값만 사용되며, 꼭 필요한 수식이 있다면 [수식 복구(R)] 옵션을 사용하는 것이 좋습니다.
04 VBA 코드 이용 셀 스타일 및 이름 관리자 제거
엑셀 문서의 셀 스타일에 사용자가 직접 등록한 셀 스타일이나 정의된 이름이 아닌 경우, 파일이 손상되었을 가능성이 높습니다. 다음과 같이 Visual Basic 코드를 이용하여 스타일 및 이름 관리자를 모두 제거할 수 있습니다.
엑셀 파일에서 VBA 소스 에디터를 사용하기 위해서는 개발 도구 탭을 이용해야 하지만, 만약 상단 리본 메뉴에서 개발 도구가 보여지지 않는다면 다음과 같이 사용자 지정할 수 있습니다.
엑셀 프로그램 실행 후 상단의 [파일] 메뉴 클릭 후 [옵션]을 선택합니다. 'Excel 옵션' 팝업 창이 열리면 왼쪽 사이드 바에서 [리본 사용자 지정] 메뉴를 선택하고, 리본 메뉴 사용자 지정 목록에서 "개발 도구" 메뉴를 찾아 체크 박스 선택 후 [확인] 버튼을 클릭하여 리본 메뉴에 추가하도록 합니다.
이제 [개발 도구] 메뉴 클릭 후 [Visual Basic] 리본 메뉴를 선택합니다. 또는 키보드 단축키 Alt + F11 키를 사용할 수도 있습니다.
VBA 에디터 창이 열렸다면 스타일 및 이름 관리자 개체를 제거하기 위한 샘플 코드 사용을 위해, 상단 메뉴에서 [삽입(I) > 모듈(M)]를 선택합니다.
삽입된 모듈(Module1)에 다음 코드를 복사하여 붙여넣기 합니다.
Sub DeleteNames()
Dim n As Name
Dim lngCount As Long
On Error Resume Next
lngCount = ThisWorkbook.Names.Count
For Each n In ThisWorkbook.Names
n.Visible = True
n.Delete
Next n
MsgBox "총 " & lngCount & "개의 [이름]중, " & lngCount - ThisWorkbook.Names.Count & "개의 [이름]삭제 완료."
End Sub
Sub DeleteStyles()
Dim lng As Long
Dim lngCount As Long
lngCount = ThisWorkbook.Styles.Count
On Error Resume Next
For lng = ThisWorkbook.Styles.Count To 1 Step -1
ThisWorkbook.Styles(lng).Delete
Next lng
MsgBox "총 " & lngCount & "개의 [스타일]중, " & lngCount - ThisWorkbook.Styles.Count & "개의 [스타일]삭제 완료."
End Sub
삽입된 모듈에 코드를 붙여넣기한 다음 먼저 "Sub DeleteNames() ~ End Sub" 사이 코드에 커서를 위치한 상태에서 [▶] 버튼 또는 F5 키를 눌러 코드를 실행합니다.
수초~수십초 이상의 시간이 소요될 수 있으며, 작업이 종료되면 "이름"이 삭제 완료 되었다는 메시지가 표시됩니다.
다음으로 "Sub DeleteStyles() ~ End Sub" 코드 사이에 커서를 위치한 상태에서 [▶] 버튼 또는 F5 키를 눌러 코드를 실행합니다.
마찬가지로 수초~수십초 이상의 시간이 소요될 수 있으며, 작업이 종료되면 "스타일"이 삭제 완료 되었다는 메시지가 표시됩니다.
작업이 종료되면 삽입된 모듈(Module1)을 마우스 오른쪽 버튼으로 클릭하고 [Module1 제거(R)]을 선택하여 제거합니다.
이제 엑셀로 돌아와 [수식 > 정의된 이름 > 이름 관리자]를 클릭합니다.
"이름 관리자" 창에서 [필터(F) > 오류가 있는 이름(W)]을 선택하여 조회한 다음 결과 값에서 첫 번째 이름을 클릭한 다음 키보드 단축키 Ctrl + Shift 키를 누른 상태에서 마지막 항목을 클릭하여 전체 선택 후 [삭제] 버튼을 클릭하여 모두 제거합니다.
이제 [파일 > 다른 이름으로 저장]을 선택하여 "xlsx" 파일로 저장합니다.
저장한 ".xlsx" 파일을 선택하고 F2 키를 눌러 확장자를 ".zip"으로 변경합니다.
파일 확장자가 표시되지 않을 경우 Windows 10 기준 제어판에서 폴더 옵션 실행 후 보기 탭의 고급 설정에서 "알려진 파일 형식의 파일 확장명 숨기기" 옵션을 선택 해제하고, Windows 11의 경우 파일 탐색기 상단의 [보기 > 표시 > 파일 확장명]을 선택하여 표시할 수 있습니다.
엑셀 파일의 확장자를 "ZIP"으로 변경한 파일을 압축 해제하고 "xl" 폴더로 이동하여 "styles.xml" 파일을 마우스 오른쪽 버튼 클릭 후 [연결 프로그램(H) > 메모장]을 선택합니다.
메모장에서 Ctrl + F 키를 누르고 "찾기" 창에서 다음 코드를 복사하여 붙여넣기한 다음 [다음 찾기(F)] 버튼을 클릭합니다.
<cellStyles count
"<cellStyles count" 코드가 선택된 상태에서 키보드 Ctrl + Shift + END 키를 눌러 마지막까지 모두 선택합니다. 여기서 Shift 키만 누른 상태로 왼쪽 화살표 ← 키를 눌러 "</cellStyles>"까지만 선택하도록 조절하고 Delete 키를 눌러 스타일과 관련된 모든 내용을 삭제합니다.
이제 삭제된 위치에서 다음 코드를 복사하여 붙여넣기하고 저장합니다.
<cellStyles count="1"><cellStyle name="표준" xfId="0" builtinId="0"/></cellStyles>
압축 해제한 폴더로 돌아와 "_rels, docProps, xl, [Content_types].xml" 등의 폴더와 파일을 모두 선택한 상태에서 마우스 오른쪽 버튼을 클릭하고 "ZIP" 파일로 압축합니다. 만약 알약, WinRaR 등 타사 압축 프로그램으로 압축했을 때 정상적으로 생성되지 않을 경우 Windows 기본 기능으로 압축하시기 바랍니다.
".zip" 파일의 확장자를 다시 ".xlsx" 파일로 변경하여 저장합니다.
다시 엑셀 파일을 열었을 때 복구 관련 메시지가 표시되면 복구를 진행하고 정상적으로 해당 문서가 복구되었는지 확인합니다.
'IT > How to' 카테고리의 다른 글
Mozilla Firefox 모든 웹 페이지의 글꼴을 식별하는 방법 (0) | 2022.11.15 |
---|---|
Microsoft Word 2019 및 365에서 다크 모드 활성화 방법 (0) | 2022.11.10 |
윈도우11 라이트 및 다크 모드 전환 자동 예약 설정 방법 (Auto Dark Mode) (0) | 2022.11.09 |
CentOS 7 Linux 설치 USB 부팅 디스크 만드는 방법 (Rufus) (0) | 2022.11.08 |
윈도우11 LAN 카드 하나에 IP 주소 여러 개 할당하는 방법 (0) | 2022.11.06 |
윈도우11 WSL 암호 잊었을 때 패스워드 초기화 방법 (1) | 2022.11.05 |
윈도우11 파일 탐색기 '날짜별 그룹화' 정렬 비활성화 방법 (2) | 2022.11.04 |
윈도우11 파일 탐색기에서 실시간 검색 결과 활성화 방법 (2) | 2022.10.29 |