32 비트 시스템에서 잘 작동하는 꽤 복잡한 Excel VBA 프로젝트가 있습니다. 이제는 64 비트 시스템에서도 작동하도록 노력 중입니다. 모든 함수 선언을 해결했지만 데이터 형식이 Long
인 경우 문제가 발생합니다.Long 변수를 64 비트 및 32 비트 Excel VBA에서 작동
몇 가지 조사를하는, 나는 (은 MSDN 페이지에서)이 마련 :
LongPtr가 확인되는지 실제 데이터 형식이 실행되는 Office 버전에 따라 달라집니다: LongPtr은 Office의 32 비트 버전에서이 으로 끝나고 Office의 64 비트 버전에서는 LongPtr이 LongLong으로 해결됩니다.
그러나
은 내가 사방 그렇게해야 내가Dim x as LongPtr
에
Dim x as Long
에서 내 모든 Dim
문을 변경할 수 있음을 의미합니까? 아니면 막대기의 끝 부분을 잘못 잡았습니까? 그것이 작동하지 않거나이 변화가 피해야하는 상황이 있습니까?
형식을 신고해야합니까? 변수를 Variant로 남겨두면 (형식을 선언하지 마십시오) 코드가 약간 느려지지만 VBA가 등 뒤에서 힘든 작업을 수행해야합니다. 달리 말하면, 그냥 'long'으로 남겨 두는게 어떨까요? 왜 32 비트 길이 일 필요가있을 때 변수를 64 비트로 만들려고합니까? 존재하지 않는 문제를 해결하고 있는지 궁금합니다. 어쩌면 당신은 '긴'이외의 것을 필요로한다고 생각하면 더 명확하게 설명 할 수 있습니다 (작은 코드 예제로). – Floris
당신은 그렇게 할 필요가 없습니다. 그냥 ['포인터와 핸들에 LongPtr 사용] (http://msdn.microsoft.com/en-us/library/office/gg251378%28v=office.15%29.aspx) –
@ LưuVĩnhPhúc에 동의합니다. 끝내려는 생각이야. – Floris