Link to home
Start Free TrialLog in
Avatar of Skylar
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 ... 
#Else 
Private Declare Function ... 
#EndIf 

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Daniel Pineault
Daniel Pineault

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Skylar
Skylar

ASKER

Thanks very much Daniel. It solved the problem.