- You write a Microsoft Visual Basic for Applications (VBA) macro code that uses Declare statements.
- Your VBA macro code uses compilation constants. For example, your macro code uses one the following compilation constants:
- #If VBA7
- #If Win64
- You use an #Else block in a conditional block. In the #Else block, you use syntax for a Declare statement designed to run in Microsoft Visual Basic for Applications 6.0.
- You edit the code in a 64-bit version of a Microsoft Office 2010 program.
- You try to change the Declare statement in the #Else block.
The code in this project must be updated for use on 64-bit
systems. Please review and update Declare statements and then
mark them with the PtrSafe attribute.
Note This issue only occurs when you edit the VBA macro. This issue does not occur when you run the macro.
Steps to reproduce the problemMicrosoft provides programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. Microsoft support professionals can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific needs.
If you have limited programming experience, you may want to contact a Microsoft Certified Partner or Microsoft Advisory Services. For more information, visit these Microsoft Web sites:
Microsoft Certified Partners -
Microsoft Advisory Services - http://support.microsoft.com/gp/advisoryservice
For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:
- Start the 64-bit version of Microsoft Excel 2010 that is running on a Windows 64-bit operating system.
Note By default, a new workbook is opened.
- Press ALT+F11 to start the Visual Basic for Applications 7.0 IDE window.
- On the Insert menu, click Module.
- In the code window that appears, copy and paste the following code:
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
Private Declare Sub Sleep Lib "kernel32" (ByVal ms as Long)
- In each Declare statement, manually change the name of any parameter that is passed from "ms" to "millisecs."
Article ID: 983043 - Last Review: May 28, 2010 - Revision: 1