엑셀 매크로 xlsm 변환이 안 되는 이유와 정확한 저장 순서

매크로를 다 짜놨는데 파일을 닫고 다시 열었더니 VBA 코드가 전부 사라졌다. 엑셀 매크로 xlsm 변환 방법의 핵심은 저장 형식 선택 한 번으로, xlsx 대신 xlsm을 고르는 것만으로 매크로 소실은 완전히 막을 수 있다. 파일 형식의 구조적 차이를 모른 채 저장 습관을 유지하면, 같은 실수가 반복될 수밖에 없다.

xlsm이 필요한 이유: xlsx는 매크로를 담을 수 없다

엑셀 파일 형식은 크게 셋으로 나뉜다. 일반 통합 문서(xlsx), 매크로 포함 통합 문서(xlsm), 바이너리 통합 문서(xlsb)다. xlsx는 오픈XML 국제 표준을 따르는 포맷으로, 보안상의 이유로 VBA(Visual Basic for Applications) 코드를 의도적으로 지원하지 않도록 설계되어 있다. 문서 표준 기구가 실행 코드가 포함된 파일을 범용 포맷에 허용하지 않은 것이다.

xlsx로 저장을 시도할 때 매크로가 포함되어 있으면 엑셀은 다음과 같은 경고를 띄운다.

“다음 기능은 매크로 제외 통합 문서에 저장할 수 없습니다: VB 프로젝트. 이 기능이 없는 파일로 계속 저장하시겠습니까?”

여기서 ‘예’를 누르면 매크로가 삭제된 xlsx로 저장된다. ‘아니요’를 선택해야만 다른 형식을 고를 기회가 생긴다. 급하게 저장하다가 반사적으로 ‘예’를 눌러 매크로를 날린 경험이 있다면, 정확히 이 구조 때문이다.

xlsm은 xlsx와 내부 구조는 같지만, VBA 코드를 담는 전용 모듈이 추가된 형식이다. 확장자 자체가 다르기 때문에 운영체제와 보안 소프트웨어가 ‘매크로 포함 파일’로 인식해, 열 때 추가 확인 절차를 거치는 것도 이 설계에서 비롯된다.

xlsx → xlsm 변환하는 방법: 단계별 정리

기존 xlsx 파일에 매크로를 추가했거나, 처음부터 xlsm으로 저장해야 하는 경우 모두 같은 경로를 쓴다.

방법 1: 다른 이름으로 저장

  1. 상단 메뉴에서 파일 탭 클릭 → 다른 이름으로 저장 선택
  2. 저장 위치를 지정한 뒤, 파일 형식(저장 유형) 드롭다운을 클릭
  3. 목록에서 ‘Excel 매크로 사용 통합 문서(*.xlsm)’ 선택
  4. 파일명 확인 후 저장

이 방법은 원본 xlsx 파일을 그대로 두고 xlsm 파일을 새로 생성한다. 두 파일이 모두 남으므로 원본을 보존하고 싶을 때 유리하다.

방법 2: 매크로 작성 직후 경고 창 활용

VBA 편집기(Alt+F11)에서 코드를 작성하고 처음 저장할 때 경고 창이 뜨면, ‘아니요’를 선택한 뒤 저장 형식에서 xlsm을 고르는 것이 가장 빠른 경로다. 매크로를 쓸 것이 확실한 파일은 처음 만들 때부터 xlsm으로 생성하는 편이 이 절차를 줄인다.

방법 3: 파일 탐색기에서 확장자 직접 변경 — 절대 하지 말 것

파일 탐색기에서 xlsx를 xlsm으로 확장자만 바꾸는 방법을 시도하는 경우가 있다. 이 방법은 작동하지 않는다. 확장자만 바뀔 뿐 내부 XML 구조에 VBA 모듈이 추가되지 않으므로, 파일이 손상된 것처럼 인식되거나 열리지 않는 문제가 생긴다. 반드시 엑셀의 ‘다른 이름으로 저장’ 기능을 이용해야 한다.

엑셀 함수 자동화와 함께 업무 효율을 높이려 한다면 엑셀 SUMIF와 SUMIFS의 인수 순서 차이도 확인해 두면 조건별 집계 로직을 매크로와 결합하는 데 도움이 된다.

변환 후에도 매크로가 차단되는 두 가지 원인

xlsm으로 저장했는데도 파일을 열 때마다 매크로가 비활성화된다는 경우가 많다. 코드가 사라진 게 아니라 실행이 막혀 있는 것이다. 원인은 두 가지다.

1. 엑셀 보안 센터의 기본 설정

엑셀은 기본값으로 모든 매크로를 알림과 함께 비활성화한다. 파일을 열면 상단에 노란색 보안 경고 바가 나타나며, ‘콘텐츠 사용’ 버튼을 눌러야 그 세션에서 매크로가 실행된다.

이 설정을 영구적으로 바꾸고 싶다면 파일 → 옵션 → 보안 센터 → 보안 센터 설정 → 매크로 설정에서 조정할 수 있다. 단, ‘모든 매크로 사용’으로 바꾸는 것은 권장하지 않는다. 신뢰할 수 없는 출처의 xlsm을 아무 경고 없이 실행하는 환경이 만들어지기 때문이다. 대신 신뢰할 수 있는 위치를 등록하는 방법이 안전하다. 보안 센터 → 신뢰할 수 있는 위치 → 새 위치 추가에서 해당 폴더를 등록하면, 그 폴더 안의 xlsm 파일은 별도 확인 없이 매크로가 실행된다.

2. 인터넷 다운로드 파일의 ‘보호된 보기’

이메일 첨부파일이나 웹에서 내려받은 xlsm 파일에는 Windows의 ‘Mark of the Web(MOTW)’ 속성이 붙어 보호된 보기 상태로 열린다. 이 상태에서는 매크로뿐 아니라 편집 기능 일부도 제한된다. 파일 속성(마우스 오른쪽 클릭 → 속성)의 하단 ‘차단 해제’를 체크하거나, 파일을 열고 ‘편집 사용’ → ‘콘텐츠 사용’ 버튼을 차례로 클릭해야 정상 실행된다.

xlsm → xlsx 역변환: 매크로 제거하고 공유용 파일로 바꾸기

완성된 결과물을 매크로 미지원 환경에서 공유하거나, 실행 코드 없이 데이터만 전달해야 할 때 역변환이 필요하다.

  • 파일 → 다른 이름으로 저장
  • 파일 형식에서 ‘Excel 통합 문서(*.xlsx)’ 선택
  • 경고 창에서 ‘예’ 선택 → 매크로가 제거된 xlsx 저장

이 과정에서 VBA 모듈은 완전히 삭제된다. 나중에 코드를 다시 쓸 가능성이 조금이라도 있다면 원본 xlsm 파일을 별도 보관해야 한다. 변환 후에는 xlsx를 열어 VBA 편집기(Alt+F11)에 아무 코드도 남아 있지 않은지 확인하는 것이 좋다. 코드가 남아 있다면 저장이 의도대로 이뤄지지 않은 것이다.

xlsm을 PDF로 내보낼 때 놓치기 쉬운 설정

xlsm을 PDF로 변환하는 방법은 일반 xlsx와 같다. 파일 → 내보내기 → PDF/XPS 문서 만들기를 선택하거나, Ctrl+P에서 프린터를 ‘Microsoft Print to PDF’로 지정하면 된다. 그러나 매크로가 포함된 파일에서는 확인해야 할 항목이 추가된다.

  • 인쇄 영역 확인: 매크로로 생성된 결과 범위가 인쇄 영역에 포함되어 있는지 점검한다. 자동화 결과가 인쇄 영역 밖에 위치하면 PDF에 반영되지 않는다.
  • 시트 범위 선택: 내보내기 옵션에서 ‘활성 시트’와 ‘전체 통합 문서’ 중 하나를 고른다. 매크로로 여러 시트를 생성했다면 전체 통합 문서를 선택해야 누락 없이 포함된다.
  • 매크로는 PDF에 포함되지 않는다: 버튼 등 ActiveX 컨트롤의 시각적 형태만 나타나며, 클릭 기능은 작동하지 않는다. 배포용 PDF라면 버튼을 삭제하거나 레이아웃을 정리한 뒤 변환하는 것이 깔끔하다.

정리: xlsm 변환 실수가 반복되지 않으려면

xlsm 변환에서 실수가 집중되는 지점은 딱 두 곳이다. 첫째, 저장 형식을 xlsx로 둔 채 경고 창에서 ‘예’를 눌러 매크로를 삭제하는 것. 둘째, xlsm으로 저장했지만 보안 설정 때문에 매크로가 실행되지 않아 코드가 사라진 줄 착각하는 것.

두 경우 모두 파일 형식의 구조와 보안 설정 구조를 한 번만 이해하면 반복되지 않는다. 매크로를 포함할 파일은 처음 생성할 때부터 xlsm으로 만드는 것이 가장 안전하고, 공유용으로 역변환할 경우에는 원본 xlsm을 반드시 별도 보관하는 것이 기본 운용 원칙이다.

자주 묻는 질문

xlsx 파일에 매크로를 저장하면 어떻게 되나요?

xlsx는 VBA 코드를 저장하지 않는 구조입니다. 저장 시 경고 창이 뜨고 '예'를 선택하면 매크로가 삭제된 채로 저장됩니다. 매크로를 유지하려면 반드시 xlsm 형식을 선택해야 합니다.

xlsm 파일을 열었는데 매크로가 비활성화되어 있는 이유는?

엑셀의 기본 보안 설정이 외부 파일의 매크로를 자동으로 차단하기 때문입니다. 상단의 '콘텐츠 사용' 버튼을 클릭하거나, 보안 센터에서 해당 폴더를 신뢰할 수 있는 위치로 등록하면 해결됩니다.

xlsm을 xlsx로 다시 변환할 수 있나요?

가능합니다. 파일 → 다른 이름으로 저장 → 'Excel 통합 문서(*.xlsx)'를 선택하면 됩니다. 이 과정에서 VBA 코드는 모두 삭제되므로, 원본 xlsm 파일은 별도로 보관하는 것을 권장합니다.

xlsm 파일을 PDF로 변환할 수 있나요?

가능합니다. 파일 → 내보내기 → PDF/XPS 문서 만들기를 이용하거나 Ctrl+P에서 'Microsoft Print to PDF'를 선택하면 됩니다. PDF에는 매크로가 포함되지 않으며, 변환 전 인쇄 영역과 시트 선택을 반드시 확인해야 합니다.

파일 탐색기에서 확장자를 xlsx에서 xlsm으로 바꾸면 되지 않나요?

작동하지 않습니다. 확장자만 바꾸면 내부 XML 구조에 VBA 모듈이 생기지 않아 파일이 손상되거나 열리지 않을 수 있습니다. 반드시 엑셀의 '다른 이름으로 저장' 기능을 이용해야 합니다.

Leave a Comment