I have a fairly slow running macro (~20 seconds) that works fine on one computer, but never finishes on another. If finally decided to figure out why. (Big Daddy is the nickname of the guy who started this golf league way before my time. I am not Big Daddy, although maybe I should be.)
First I noted that Windows Defender was using a lot of CPU and Excel almost none.
I disabled Windows Defender realtime under Windows Security. Then I got a green leaf next to Excel that says “This UWP process is suspended to improve system performance.”
I don’t know what that means, but the internet told me to increase the priority of Excel.
That got rid of the green leaf, but the macro never finished. I read some stuff about 32-bit APIs and Win 10 trying to prevent malicious code. I use the CopyMemory API referenced in Rob Bruce’s comment to Terminating Dependent Classes
I rewrote all the dependencies to simply point to the other classes rather than use CopyMemory and all the problems vanished.
2 thoughts on “Macros with 32-bit API Calls”
Does it make a difference if you ensure the CopyMemory declaration is 64 bit compliant?
That’s a good thought. I’ll try it out.
Posting code? Use <pre> tags for VBA and <code> tags for inline.