Link to home
Create AccountLog in
Avatar of Skylar

asked on

How to add PtrSafe to make this work in 64 bit

I have this part of the code which is for 32 bit Excel and my excel is 64 bit,

I tried to make this 64 bit by adding PtrSafe at the beginining of the code. it did not work for me.

can anyone please help me?

Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function ShellExecute Lib "shell32" _
    Alias "ShellExecuteA" _
   (ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

Open in new window

Avatar of Zakaria Acharki
Zakaria Acharki
Flag of Morocco image

PtrSafe Asserts that a Declare statement is targeted for 64-bit systems. Required on 64-bits. so try to add it to the declaration like :

Private Declare PtrSafe Function GetDesktopWindow Lib "user32" () As Long
Private Declare PtrSafe Function ShellExecute Lib "shell32" 

Open in new window

For both version you could use a conditional declaration like :

#If Vba7 Then 
Private Declare PtrSafe Function ... 
Private Declare Function ... 

Open in new window

Avatar of Daniel Pineault
Daniel Pineault

Link to home
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
Avatar of Skylar


Thanks very much Daniel. It solved the problem.