엑셀 PDF 변환 시 발생하는 취소선 버그 해결 방법

지금 엑셀에서 PDF로 변환할 때 특정 셀에 의도치 않게 취소선이 표시되어 곤혹스럽게 느끼셨다면, 이 문제의 배후에는 새롭게 도입된 “Stale Value Formatting(오래된 값 형식 지정)” 기능이 숨겨져 있습니다. 업데이트 이전까지는 없었던 문제라 더욱 당황스러울 텐데요. 다행히 간단한 설정과 재계산으로 이 이슈를 충분히 해결할 수 있습니다.

목차

문제의 배경과 핵심 증상

엑셀에서 VBA 코드를 이용해 PDF로 내보낼 때, 특정 셀의 텍스트가 자동으로 취소선(스트라이크스루) 형태로 변환되어 출력되는 문제가 발생합니다. 가장 흥미로운 점은 스프레드시트 화면상에는 전혀 문제가 없고, “파일 > 인쇄” 메뉴를 통해 수동으로 PDF를 저장했을 때도 동일 증상이 발생하지 않는다는 것입니다. 결국 VBA 자동화 프로세스로 PDF 변환을 시도했을 때만 취소선이 표시되는 버그가 보고되고 있습니다.

자동화 PDF 변환 시 발생하는 취소선 문제

VBA 매크로를 활용해 다량의 문서를 일괄 변환하거나, 정해진 일정에 따라 자동으로 PDF를 생성해야 하는 상황이라면, 이 문제로 인해 업무 흐름에 차질을 빚을 수 있습니다. 실제로 일부 셀에만 국지적으로 취소선이 들어가 PDF 문서가 생성되면, 중요한 보고서나 계약서 같은 문서가 잘못 전달될 우려도 큽니다. 문제의 원인을 모르는 상태에서는 셀 서식이나 데이터에 이상이 있다고 오해하기도 쉽습니다.

최신 Excel 업데이트의 영향

최근 엑셀 업데이트는 여러 기능 개선과 버그 수정을 포함하고 있지만, 동시에 새로운 기능이 예기치 못한 충돌을 일으킬 수 있습니다. “Stale Value Formatting” 역시 이러한 맥락에서 추가된 기능으로, 계산 모드가 수동이거나 장기간 재계산이 이뤄지지 않은 경우, 오래된 계산 결과값에 대한 시각적 표시(예: 취소선)를 해주는 설정입니다. 이 기능이 VBA를 통한 PDF 출력 과정에서만 활성화되어 특정 셀 텍스트에 취소선을 그어버리는 것으로 추측됩니다.

Stale Value Formatting 기능의 원리

“Stale Value Formatting”은 다음과 같은 상황에서 동작합니다.

  1. 통합 문서가 수동 계산 모드로 설정되어 있을 때
  2. 일부 수식 셀이 업데이트되지 않은 상태로 남아 있을 때
  3. 그 상태에서 PDF 등의 출력이나 미리보기를 진행할 때

즉, 함수가 오래된 값(다시 계산되지 않은 값)을 표시해야 할 경우, 시각적으로 구분하기 위해 취소선을 적용해 “이 값이 업데이트되지 않았습니다”라고 알려주는 목적을 가진 기능입니다. 문제는 이 기능이 예기치 않은 시점에서 작동하여, 실제로는 수식이 오래되지 않았더라도 취소선이 걸리는 버그가 발생한다는 점입니다.

해결 방법 상세 안내

현재 알려진 해결책은 크게 두 가지로 정리됩니다. 첫째, PDF로 변환하기 전에 수식을 다시 계산하여 ‘오래된 상태’를 해소하는 방법입니다. 둘째, “Stale Value Formatting” 기능 자체를 꺼버려 아예 취소선이 표시되지 않도록 하는 방법입니다.

방법 1: 수식 재계산 후 PDF 출력

엑셀에서는 통합 문서 전체를 다시 계산하는 단축키(보통 F9 또는 Shift + F9 등)를 이용하거나, VBA 코드 상에서 다시 계산을 명령할 수 있습니다. 이를 통해 오래된 값이 업데이트되면, 취소선 없이 정상적인 PDF가 생성됩니다.

  • 수식 자동 또는 수동 계산 모드를 확인하고, 수동 계산 모드라면 자동 계산 또는 다시 계산을 실행
  • VBA 코드로 PDF를 내보내기 전에 ThisWorkbook.Calculate 또는 Application.Calculate 등을 호출해 전체 시트를 최신 상태로 갱신

VBA 코드 예시

아래 코드는 VBA 매크로를 통해 엑셀 문서를 PDF로 저장하기 전, 통합 문서 전체를 재계산한 후 PDF를 생성하는 단순한 예시입니다.

Sub SaveAsPDFwithRecalc()
    ' 통합 문서 전체 계산
    Application.Calculate

    ' PDF로 저장할 경로 설정
    Dim pdfPath As String
    pdfPath = "C:\temp\MyExcelDocument.pdf"

    ' 시트 또는 통합 문서를 PDF로 내보내기
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, _
                                   Quality:=xlQualityStandard, _
                                   IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                                   OpenAfterPublish:=False
End Sub

위 코드처럼 PDF 변환 직전에 Application.Calculate를 호출하면, 비정상적인 취소선 표시를 방지할 수 있습니다.

방법 2: Stale Value Formatting 기능 비활성화

두 번째 방법은 엑셀 옵션에서 해당 기능을 아예 꺼버리는 방식입니다. “오래된 값 형식 지정” 기능은 원래 특정 상황에서 유용할 수 있지만, 대규모로 VBA 코드를 활용해 자동화하는 경우에는 예기치 않은 버그를 발생시킬 수 있습니다.

Excel 옵션 설정 단계

  1. 파일(F) 메뉴를 클릭한 뒤 옵션(O)을 선택
  2. 고급 탭에서 “Stale Value Formatting” 관련 옵션을 찾기
  3. 해당 옵션이 체크되어 있다면, 체크를 해제하고 적용

공식 문서에서도 이 기능을 해제하면 취소선 표시 문제가 사라진다고 안내하고 있으니, 조직 내 여러 시스템에서 동일 증상이 반복된다면 이 방법을 적용하는 것이 편리할 수 있습니다.

추가 팁 및 모범 사례

VBA를 이용해 엑셀 문서를 자동화하고, 그 결과물을 PDF로 변환해 관리하는 사례가 점점 늘어나고 있습니다. 이를 효율적으로 유지·관리하기 위해서는 다음과 같은 팁들을 참고할 만합니다.

자동화 프로세스에서의 주의사항

  • 실시간 계산 모드 활성화: 자동화로 많은 양의 데이터를 처리할 때는, 작업 속도 향상을 위해 일부러 수동 계산 모드로 전환할 때가 많습니다. 그러나 이로 인해 업데이트되지 않은 값이 남으면 이번처럼 예기치 못한 취소선 문제가 발생할 수 있습니다. 가능한 실시간으로 계산 모드를 유지하거나, 최소한 PDF 출력 직전에 재계산 과정을 거치도록 매크로를 작성해야 합니다.
  • 에러 발생 시 자동 중단 설정: VBA 코드 중간에 오류가 발생해 매크로가 중단되면, 시트가 절반만 계산된 상태로 남을 수 있습니다. 이럴 때도 오래된 값이 엑셀 내부에 잔존하여 추후 PDF 변환 시 취소선이 표시될 가능성이 높아집니다.

실시간 계산 모드 활성화

실시간(자동) 계산 모드에서는 셀이 변경될 때마다 자동으로 재계산이 이뤄지므로, 오래된 상태가 계속 남아있을 위험이 상대적으로 적습니다. 단, 대규모 함수 연산이 많은 업무 환경에서는 처리 속도가 느려질 수 있으므로, 업무 흐름에 맞게 적절히 설정을 조정해야 합니다.

PDF 인쇄 품질 향상 방법

PDF로 변환 시 텍스트가 번지는 현상이나 해상도가 낮아지는 문제가 함께 발생한다면, 인쇄 품질 설정에도 신경을 써야 합니다. Excel에서 PDF 출력 품질은 “출력 품질(Quality)” 옵션이나 “페이지 설정” 메뉴를 통해 조정할 수 있습니다.

페이지 설정 권장 사항

  1. 여백(마진) 조정: PDF로 변환 시 문서 테두리가 잘리지 않도록 적절한 여백을 설정합니다.
  2. 페이지 크기: A4, Letter 등 문서 규격에 맞춰 페이지 크기를 설정하면, PDF에서 레이아웃이 어긋나지 않습니다.
  3. 인쇄 품질: 고해상도 PDF가 필요한 경우, 고품질 인쇄(300dpi 이상) 옵션을 선택하세요.
  4. 머리글/바닥글: 자동으로 삽입되는 페이지 번호나 날짜가 필요한 경우, “머리글/바닥글” 설정을 통해 정확하게 출력될 수 있도록 미리 확인합니다.

심층 정보: 기능별 작동 방식 비교

다음은 “수식 재계산 후 출력” 방식과 “Stale Value Formatting 비활성화” 방식을 비교한 표입니다. 어떤 방법이 더 적합한지는 업무 환경과 자동화 수준, 협업 방식 등에 따라 달라질 수 있습니다.

설정효과장점단점
자동 재계산 후 PDF 변환PDF 변환 시 이전 값이 표시되지 않음취소선 문제 완화, 최신 데이터 반영대규모 워크시트에서 계산 시간 증가 가능
Stale Value Formatting 비활성화오래된 값 표시 기능 제거취소선 문제 완전 해소, 직관적 설정다른 문서에서도 동일 설정이 적용되어 유연성 부족

이처럼 두 가지 해결책은 각각의 장단점이 있습니다. 만약 문서마다 설정을 달리 적용해 ‘오래된 값’을 표시해야 하는 상황이 있다면, 첫 번째 방법을 활용하여 필요할 때마다 PDF 변환 전에 재계산하는 접근이 적절합니다. 반면, 조직 내 모든 문서에서 동일하게 취소선 문제를 제거하고자 할 때는 옵션을 꺼두는 편이 편리할 수 있습니다.

추가 고려사항: 업계 규정 및 문서 표준

금융권이나 공공기관처럼 수식과 계산 결과가 중요한 문서가 다수 존재하는 경우, 엑셀의 계산 모드 설정은 매우 중요한 이슈일 수 있습니다. 이때 “오래된 값”임을 표시하는 기능이 오히려 필요할 수도 있으니, 무조건 기능을 끄기보다는 해당 기능이 실제로 필요한지, 어떤 업무 환경에서 이점이 있는지 등을 사전에 점검하세요.

또한 PDF 변환 시 서식 문제가 발생하면, 전자결재 시스템이나 문서 보존 시스템에서 인식 오류가 발생할 수도 있습니다. 따라서 정기적으로 Excel과 PDF 변환 프로세스를 점검해 예상치 못한 서식 깨짐이나 텍스트 오류를 최소화해야 합니다.

결론

최근 Excel 업데이트로 새롭게 추가된 “Stale Value Formatting” 기능 때문에, VBA 코드를 이용한 PDF 변환 시 특정 셀 텍스트에 취소선이 표시되는 문제가 보고되고 있습니다. 이를 해결하기 위해서는 PDF 변환 전에 수식을 다시 계산하거나, Excel 옵션에서 Stale Value Formatting 기능을 비활성화하는 두 가지 방법을 고려할 수 있습니다.

업무 환경에 따라 어떤 방법이 더 적절한지는 달라질 수 있으므로, 위에서 소개한 장단점을 비교해 가장 효율적인 방안을 적용해 보세요. 특히 자동화된 대량 작업 환경이라면, VBA 코드 내부에서 재계산을 자동으로 수행하고 PDF 변환을 진행하는 방식을 추천합니다. 문제 원인과 솔루션을 정확히 이해하고 대처한다면, 이번 취소선 표시 버그를 손쉽게 해결하고 Excel과 PDF 간의 원활한 연동을 지속할 수 있을 것입니다.

목차