구조진단노트

엑셀에서 64비트 VB매크로 오류문제

by ✯

매크로가 있는 엑셀에서 이런 오류가 발생하면, 보통 비주얼베이직이 64비트를 제대로 호환하지 않는 문제이기 때문인데, 이때 문제를 해결하려면 좀 복잡한 접근이 필요하다.

 

일단 마이크로소프트사의 접근은 아래 링크 참조.

docs.microsoft.com/ko-kr/previous-versions/office/troubleshoot/office-developer/compile-error-editing-vba-macro

 

이 프로젝트의 코드를 64 비트 시스템에서 사용 하도록 업데이트 해야 합니다. - Office

Office 2010 프로그램에서 VBA 매크로를 편집할 때 오류 메시지가 표시 되는 문제에 대해 설명 합니다. 해결 방법을 제공 합니다.

docs.microsoft.com

 

해당 엑셀에서 매크로를 실행하는 버튼을 눌렀을 때 비주얼베이직이 자동으로 열리면서 컴파일 오류 팝업창이 뜬다면, 확인을 눌러 그 에러창을 닫고 직접 코드를 수정해줄 수도 있다.

 

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

 

라고 되어 있는 행이 있다면

1
2
3
4
5
#If VBA7 Then
    Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
#Else
    Private Declare Sub Sleep Lib "kernel32" (ByVal ms as Long)
#End If
cs

 

이걸로 바꿔서 저장을 하고 해당 엑셀을 다시 열면 대부분의 경우는 정상 작동할 것으로 보인다.

 

아래는 교량 기초 검토 엑셀 파일을 샘플로 백업해놓은 것인데 같은 오류가 난다. 이를 위의 설명대로 수정하면 이상없이 작동하는 것을 확인할 수 있었다. (비공개자료)

기초검토.zip
1.09MB

 

블로그의 정보

구조진단노트

활동하기