Sintomi
Quando Microsoft Excel carica un componente aggiuntivo di automazione durante la modalità di modifica delle celle, Excel non riesce. Questo problema si verifica solo con i componenti aggiuntivi di automazione caricati su richiesta in Excel.
Causa
Questo problema può verificarsi quando un componente aggiuntivo viene caricato se il componente aggiuntivo visualizza una maschera o una finestra di dialogo oppure se il componente aggiuntivo esegue una richiesta di automazione a Excel che tenta di modificare lo stato di Excel. L'elenco seguente include esempi di richieste di automazione che potrebbero causare l'esito negativo di Excel quando viene chiamato durante il caricamento di un componente aggiuntivo di automazione durante la modalità di modifica delle celle:
-
Modificare a livello di programmazione la selezione corrente. Ad esempio:
Application.ActiveSheet.Range("A1").Select -
Chiama una proprietà o un metodo di un elemento nella raccolta di Windows. Ad esempio:
Application.ActiveWindow.Zoom = 200
-
Modificare un'impostazione di Excel, ad esempio la modalità di calcolo. Ad esempio:
Application.CalculationMode = xlManual
Tutti questi elementi sono esempi di tentativi di modifica dell'ambiente di Excel, di una cartella di lavoro o di un foglio di lavoro. questi tipi di azioni non sono consentiti in modalità di modifica.
Risoluzione
Non provare le azioni precedenti durante il caricamento del componente aggiuntivo. I metodi dei componenti aggiuntivi chiamati durante il caricamento includono il metodo Initialize e, se il componente aggiuntivo di automazione implementa l'interfaccia IDTExtensibility2, anche i metodi OnConnection e OnStartupComplete.
Stato
Microsoft ha confermato che si tratta di un bug nei prodotti Microsoft elencati all'inizio di questo articolo.
Ulteriori informazioni
Passaggi per riprodurre il problema
-
Avviare un nuovo progetto DLL ActiveX in Visual Basic.
-
Scegliere Proprietà progetto1 dal menu Progetto. Modificare il nome del progetto in TestAddIn e quindi fare clic su OK.
-
Aggiungere il codice seguente al modulo di codice per Class1:
Private Sub Class_Initialize() MsgBox "Class_Initialize"End Sub
-
Crea TestAddIn.dll.
-
In Excel iniziare una nuova cartella di lavoro.
-
In Microsoft Office Excel 2003 o Microsoft Excel 2002 procedere come segue:
-
Scegliere Componenti aggiuntivi dal menu Strumenti e quindi fare clic su Automazione.
-
Nell'elenco fare clic su TestAddIn.Class1 e quindi su OK.
-
Nella finestra di dialogo Componenti aggiuntivi fare clic su OK.
In Microsoft Office Excel 2007 procedere come segue:
-
Fare clic sul pulsante Microsoft Office e quindi suOpzioni di Excel.
-
Fare clic sulla scheda Componenti aggiuntivi .
-
Nell'elenco Gestisci fare clic su Componenti aggiuntivi di Excel e quindi su Vai.
-
Nella finestra di dialogo Componenti aggiuntivi fare clic suAutomazione.
-
Nell'elenco fare clic su TestAddin.Class1 e quindi su OK.
-
Scegliere OK.
-
-
Digitare =a in una cella qualsiasi. Viene visualizzata una finestra di messaggio con il testo "Class_Initialize".
-
Fare clic su OK per chiudere la finestra di messaggio. Dopo alcuni secondi, Excel non riesce.
Riferimenti
Per ulteriori informazioni, fare clic sul numero di articolo indicato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
291392 INFO: Componenti aggiuntivi COM di Excel e componenti aggiuntivi di automazione