Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Sintomi
Considerare lo scenario descritto di seguito:
Si scrive un codice di macro Microsoft Visual Basic, Applications Edition (VBA) che usa istruzioni Declare.
Il codice della macro VBA usa costanti di compilazione. Ad esempio, il codice della macro usa una delle costanti di compilazione seguenti:
- #If VBA7
- #If Win64
Si usa un blocco #Else in un blocco condizionale. Nel blocco #Else si usa la sintassi per un'istruzione Declare progettata per l'esecuzione in Microsoft Visual Basic, Applications Edition 6.0.
Il codice viene modificato in una versione a 64 bit di un programma di Microsoft Office 2010.
Si tenta di modificare l'istruzione Declare nel blocco #Else.
In questo caso, viene visualizzato il seguente messaggio di errore:
Microsoft Visual Basic for Applications
Compile error:
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.
Nota
Questo problema si verifica solo quando si modifica la macro VBA. Questo problema non si verifica quando si esegue la macro.
Risoluzione
Per risolvere questo problema, ignorare l'errore di compilazione ed eseguire il codice VBA nella versione a 64 bit del programma Office 2010.
Ulteriori informazioni
Procedura per riprodurre il problema
Microsoft fornisce esempi di programmazione solo a scopo illustrativo, senza alcuna garanzia espressa o implicita, comprese, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. I tecnici Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare procedura, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare procedure atte a soddisfare specifiche esigenze.
Per altre informazioni sulle opzioni di supporto disponibili e su come contattare Microsoft, visitare il seguente sito Web Microsoft:
https://support.microsoft.com/contactus
Avviare la versione a 64 bit di Microsoft Excel 2010 in esecuzione in un sistema operativo Windows a 64 bit.
Nota
Per impostazione predefinita, viene aperta una nuova cartella di lavoro.
Premere ALT+F11 per avviare la finestra IDE Visual Basic, Applications Edition 7.0.
Nel menu Inserisci, fare clic su Modulo.
Nella finestra del codice visualizzata copiare e incollare il codice seguente:
#If VBA7 Then Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr) #Else Private Declare Sub Sleep Lib "kernel32" (ByVal ms as Long) #End If
In ogni istruzione Declare modificare manualmente il nome di qualsiasi parametro passato da "ms" a "millisecs".
Quando si modifica la seconda istruzione Declare, Visual Basic, Applications Edition 7.0 segnala un errore che indica che è necessario usare PtrSafe. Il report non è tuttavia corretto perché la riga si trova in una sezione eseguita solo in Visual Basic, Applications Edition 6.0. VBA 6.0 non usa PtrSafe. Pertanto, è possibile ignorare in modo sicuro il messaggio di errore.