Symptomen
Wanneer Microsoft Excel een Automation-invoegtoepassing laadt tijdens de celbewerkingsmodus, mislukt Excel. Dit probleem treedt alleen op bij Automation-invoegtoepassingen die op aanvraag zijn geladen in Excel.
Oorzaak
Dit probleem kan optreden wanneer een invoegtoepassing wordt geladen als de invoegtoepassing een formulier of dialoogvenster weergeeft, of als de invoegtoepassing een Automation-aanvraag indient bij Excel waarmee wordt geprobeerd de status van Excel te wijzigen. De volgende lijst bevat voorbeelden van Automation-aanvragen die ertoe kunnen leiden dat Excel mislukt wanneer deze wordt aangeroepen terwijl een Automation-invoegtoepassing wordt geladen tijdens de bewerkingsmodus voor cellen:
-
De huidige selectie programmatisch wijzigen. Bijvoorbeeld:
Application.ActiveSheet.Range("A1").Select -
Roep een eigenschap of methode aan van een item in de Windows-verzameling. Bijvoorbeeld:
Application.ActiveWindow.Zoom = 200
-
Een Excel-instelling wijzigen, zoals de berekeningsmodus. Bijvoorbeeld:
Application.CalculationMode = xlManual
Al deze items zijn voorbeelden van codepogingen om de Excel-omgeving, een werkmap of een werkblad te wijzigen. deze typen acties zijn niet toegestaan in de bewerkingsmodus.
Oplossing
Probeer de bovenstaande acties niet uit terwijl uw invoegtoepassing wordt geladen. Invoegtoepassingsmethoden die tijdens het laden worden aangeroepen, omvatten de methode Initialize en, als uw Automation-invoegtoepassing de interface IDTExtensibility2 implementeert, ook de methoden OnConnection en OnStartupComplete.
Status
Microsoft heeft bevestigd dat dit een bug is in de Microsoft-producten die aan het begin van dit artikel worden vermeld.
Meer informatie
Stappen voor het reproduceren van probleem
-
Start een nieuw ActiveX DLL-project in Visual Basic.
-
Klik in het menu Project op Project1-eigenschappen. Wijzig de projectnaam in TestAddIn en klik vervolgens op OK.
-
Voeg de volgende code toe aan de codemodule voor Class1:
Private Sub Class_Initialize() MsgBox "Class_Initialize"End Sub
-
Bouw TestAddIn.dll.
-
Start een nieuwe werkmap in Excel.
-
Voer in Microsoft Office Excel 2003 of in Microsoft Excel 2002 de volgende stappen uit:
-
Wijs in het menu Extrade optie Invoegtoepassingen aan en klik vervolgens op Automatisering.
-
Klik in de lijst op TestAddIn.Class1 en klik vervolgens op OK.
-
Klik in het dialoogvenster Invoegtoepassingen op OK.
Voer in Microsoft Office Excel 2007 de volgende stappen uit:
-
Klik op de Microsoft Office-knop en klik vervolgens opOpties voor Excel.
-
Klik op het tabblad Invoegtoepassingen .
-
Klik in de lijst Beheren op Excel-invoegtoepassingen en klik vervolgens op Start.
-
Klik in het dialoogvenster Invoegtoepassingen opAutomatisering.
-
Klik in de lijst op TestAddin.Class1 en klik vervolgens op OK.
-
Klik op OK.
-
-
Typ =a in een willekeurige cel. Er wordt een berichtvak met de tekst 'Class_Initialize' weergegeven.
-
Klik op OK om het berichtvak te sluiten. Na een paar seconden mislukt Excel.
Verwijzingen
Klik voor meer informatie op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
291392 INFO: Excel COM-invoegtoepassingen en Automation-invoegtoepassingen