Bugs im VBA-Editor (VBE)

WB01727_.gif (1537 Byte)

Seiteninhalt
Möchten Sie mehr über den VBA-Editor wissen, insbesondere über seine Bugs? Auch der VBA-Editor besitzt ein paar interessante Bugs, Probleme und Spezialitäten. Lesen Sie auf dieser Seite mehr dazu.
Leserprofil
Excel-Anwender mit Programmier-Erfahrung und VBA-Programmierer

WB01727_.gif (1537 Byte)

Inhaltsübersicht

  Allgemeines über Bugs im VBA-Editor

  Undokumentierte Bugs und Probleme

  Dokumentierte Bugs und Probleme

  Weitere Informationen

To Top


Allgemeines über Bugs im VBA-Editor

Im VBA-Editor haben sich ein verschiedene Fehler eingeschlichen, die in der Knowledge Base von Microsoft dokumentiert und somit weitgehend bekannt sind. Allerdings gibt es auch ein paar interessante, nicht dokumentierte Bugs. Auf dieser Seite werden die wichtigsten Fehler beschrieben und Lösungen vorgestellt.

To Top

 


Undokumentierte Bugs und Probleme

BUG: Geöffnetes Codefenster wird nicht aktiviert (VBE01)

Summary
Der Fokus verbleibt auf einem Codefenster, welches infolge der eingeschalteten Editor-Option "Projektausblendung schliesst Fenster" geschlossen wurde. Korrekt müsste ein geöffnetes Codefenster eines anderen Projektes aktiviert werden. Auf jeden Fall müsste ein Codefenster eines anschliessend eingeblendeten Projektes den Fokus erhalten. Dies ist aber nicht der Fall.

BUG: Angepasstes Steuerelement-Bild geht bei Verschieben/Kopieren verloren (VBE02)

Summary
Wenn Sie das Bild eines Werkzeugsammlung-Steuerelementes anpassen und dann das Steuerelement mit Drag and Drop von einer Werkzeugsammlung-Seite auf eine andere Seite verschieben, erhält das
Steuerelement wieder sein ursprünglichen Bild. Das Control verliert das aktuelle, angepasste Bild und zeigt wieder das in der ocx-Datei des Controls gespeicherte Default-Bild. Das Bild geht auch beim Kopieren-Vorgang verloren, was allerdings nicht ganz so schlimm ist, da das Original-Control ja noch das angepasste Bild besitzt.

Beispiel
Fügen Sie der Werkzeugsammlung eine neue Seite hinzu. Ändern Sie jetzt das Bild des Steuerelementes "Listenfeld" (rechte Maustaste drücken während Mauszeige über dem Control steht, im Kontextmenü den Befehl "Anpassen: Listenfeld" ausführen, im "Anpassen"-Fenster die Schaltfläche "Bearbeiten" klicken). Wenn Sie nun das angepasste Control "Listenfeld" auf die neue Seite verschieben, geht das von Ihnen gezeichnete Bild verloren.

Lösung
Wenn Sie angepasste Bilder von Steuerelementen nicht verlieren möchten, sollten Sie ein Control weder verschieben noch kopieren. Es gibt einen anderen Weg:
Exportieren und importieren Sie die Werkzeugsammlung-Seite mit den angepassten Controls. Dadurch erhalten Sie eine identische Kopie der gesamten Seite mit allen Controls inklusive ihren bearbeiteten Bildern (Anmerkung: Es werden auch die Control-Bilder in die Exportdatei geschrieben). Löschen Sie nach dem Import alle Controls von der neuen Seite, die nicht benötigt werden bzw. doppelt vorhanden sind.

BUG: UserForm exportieren überschreibt existierende frx-Datei ohne Warnung (VBE03)

Summary
Wird ein Benutzerformular exportiert, erhält die Exportdatei standardmässig den Namen des Formulares (man kann einen anderen Namen wählen) sowie die Datei-Endung "frm". Beim Exportieren wird automatisch eine zusätzliche Datei (gleicher Name wie die frm-Datei mit der Endung "frx") für die Binär-Daten des Formulares generiert. Löscht man nach dem Export die frm-Datei, jedoch nicht die entsprechende frx-Datei, wird bei erneutem Formular-Export wieder der Dateiname aus Formularname und dem Suffix "frm" gebildet. Führt man den Export mit dem vorgegebenen Dateinamen aus (eine frm-Datei mit dem vorgegebenen Namen gibt es ja wegen der Löschung nicht mehr), wird die Generierung der neuen frx-Datei die noch existierende frx-Datei ohne Warnung überschrieben.

Lösung
Prüfen Sie vor dem Exportieren, ob der Zielordner allenfalls bereits eine Datei mit gleichem Namen und Endung "frx" enthält. Wenn Sie eine bereits vorhandene frx-Datei behalten möchten, sollten Sie diese umbenennen. Generell sollten Sie jedoch keine frm-Datei löschen, ohne auch die dazugehörende frx-Datei ebenfalls gleich mitzulöschen.

BUG: Mit Drag & Drop exportierte UserForm generiert falsch benannte frx-Datei (VBE04)

Summary
Wenn eine UserForm mit Drag and Drop exportiert wird (durch Ziehen des Formular-Moduls aus dem Projekt-Explorer auf beispielsweise den Windows Desktop), erhält die Exportdatei automatisch den Namen des Benutzerformulares und die Datei-Endung "frm". Beim Exportieren wird automatisch eine zusätzliche Datei (gleicher Name wie die frm-Datei mit der Endung "frx") für die Binär-Daten des Formulares generiert. Wenn auf dem Desktop bereits eine Datei mit dem gleichen UserForm-Namen und der Endung "frx" existiert, eine entsprechende Datei mit der Endung "frm" jedoch nicht, wird nicht die existierende frx-Datei überschrieben, sondern eine neue Datei mit dem gleichen Namen und dem Zusatz "(2)" generiert. In der Exportdatei (die im Textformat vorliegt) wird aber auf die Datei ohne den Zusatz "(2)" verwiesen. Die frm- und die frx-Datei passen somit nicht zusammen, was bedeutet, dass die exportierten Daten unbrauchbar sind.

Beispiel
Das Benutzerformular "AppInfo" wird mit Drag and Drop auf den Desktop gezogen, wodurch automatisch die beiden Dateien "AppInfo.frm" und "AppInfo.frx" generiert werden. Jetzt wird die Desktop-Datei "AppInfo.frm" gelöscht; die frx-Datei bleibt stehen. Wenn nun das Formular "AppInfo" erneut mit Drag and Drop auf den Desktop exportiert wird, wird eine neue Datei "AppInfo.frm" erstellt und, da es die Datei AppInfo.frx bereits gibt, eine neue Binärdatei namens "AppInfo (2).frx". Die exportierte Daten sind somit unbrauchbar, da die frx-Datei nicht den gleichen Namen wie die frm-Datei besitzt (Import ist nicht mehr möglich). Öffnet man die frm-Datei (Textformat) in einem Texteditor (z.B. Notepad), so steht auf Zeile 8 die frx-Referenz "OleObjectBlob = "AppInfo.frx":0000". Wie man unschwer erkennt, wird auf "AppInfo.frx" anstatt korrekterweise auf "AppInfo (2).frx" referenziert.

Lösung
1. Die Datei "AppInfo.frx" in "AppInfo_Alt.frx" und anschliessend die Datei "AppInfo (2).frx" in "AppInfo.frx" umbenennen. (Beste Lösung)
2. Mit Texteditor Referenz in der frm-Datei von "AppInfo.frx" auf "AppInfo (2).frx" ändern.
3. UserForm-Export anstatt mit Drag and Drop nur noch über Menübefehl "Exportieren".

BUG: Lade-Fehlerprotokoll zeigt nur die ersten 8 Zeichen des Formularnamens (VBE05)

Summary
Schlägt das Laden (z.B. beim Importieren) einer UserForm in ein VBA-Projekt fehl, wird von der VBE ein Logfile generiert, in welchem das betroffene Modul und der genaue Fehlertext festgehalten wird. Beim Modulnamen wird aber nicht der vollständige Name sondern nur die ersten 8 Zeichen angezeigt.

Beispiel
In der Log-Datei "frmCellFormat.log" steht der Text "Zeile 2: Der Name frmCellF des Formulars [...]". Der Modulname ist abgeschnitten, wie man leicht erkennen kann.

BUG: VBE-Fenstertitel zeigt den Namen des falschen Projektes/Moduls (VBE06)

Summary
Beschreibung folgt... (In der Titelleiste des VBE-Hauptfenster wird zeitweise ein falscher Projekt-/Modulname angezeigt).

Beispiel
Beispiel folgt...

BUG: Undo von Text-Drag & Drop (aus Code- nach Direktfenster) löscht den eingefügten Text nicht (VBE07)

Summary
Beschreibung folgt... (Einseitiges Undo, weil Direktfenster kein Undo unterstützt).

Beispiel
Beispiel folgt...

BUG: Menübefehl "Entfernen (Entf)" gesperrt, obwohl Entfernen-Taste benutzt werden kann bzw. darf (VBE08)

Summary
Beschreibung folgt... (Kein Projekt geöffnet und dann Text in Direktfenster löschen).

Beispiel
Beispiel folgt...

Problem: Bearbeiten-Funktionen (Ausschneiden, Kopieren, Einfügen) im Direktfenster gesperrt (VBE09)

Summary
Beschreibung folgt... (Kein Projekt geöffnet, Text-Bearbeitung in Direktfenster nicht möglich, obwohl Eingaben zugelassen sind, z.B. "?Application.Version").

Problem: Abfrage nach aktiviertem Entwurfsmodus eines Projektes funktioniert nicht (VBE10)

Summary
Das VBProjekt-Objekt besitzt eine Eigenschaft "Mode", mit der der Zustand/Modus eines Projektes abgefragt werden kann. Die Eigenschaft ist read only. Die Abfrage, ob der Entwurfsmodus eines Projektes aktiviert ist, funktioniert allerdings nicht, d.h. die Abfrage, z.B. durch "?Application.VBE.ActiveVBProject.Mode = vbext_vm_Design" liefert immer das Ergebnis "Falsch", auch wenn sich das Projekt gerade im Entwurfsmodus befindet (Hinweis: Verweis auf Objektbibliothek "Microsoft Visual Basic for Applications Extensibility" muss gesetzt sein). Die Abfrage kann nicht funktionieren, da die Ausführung der Abfrage, d.h. das Drücken der Eingabe-Taste im Direktfenster die VBE bzw. das Projekt vorübergehend in den Laufzeitmodus (vbext_vm_Run) setzt. Im Zeitpunkt der Abfrage befindet sich somit ein Projekt nie im Entwurfsmodus.

INFO: Unbenutzte Schlüssel im Registry-Zweig der VBE (VBE11)

Summary
Die VBE besitzt mehrere Optionen, die nicht benutzt werden und daher auch im Optionen-Dialog nicht aufgeführt sind. Dennoch sind diese Optionen wie die anderen VBE-Einstellungen in der Windows Registry als Schlüssel eingetragen. Eine dieser Optionen heisst "SaveBeforeRun" und sollte eigentlich festlegen, ob das aktuelle VBA-Projekt vor der Ausführung zuerst automatisch gespeichert wird. Es ist anzunehmen, dass die VBE-Entwickler diese Speichern-Feature implementieren wollten und den entsprechenden Schlüssel schon mal in der Registry vorsahen, allerdings später diese Funktionalität doch nicht mehr realisieren konnten. Ebenfalls nicht verwendet werden die Optionen-Schlüssel "BackgroundProjectLoad" und "UpgradeVBX".

INFO: Falsche Information im Onlinehilfe-Thema "Projekt oder Bibliothek nicht gefunden" (VBE12)

Summary
Die Beschreibung zur Fehlermeldung "Projekt oder Bibliothek nicht auffindbar" enthält eine falsche Information. Hier der betroffene Ausschnitt aus der Onlinehilfe:
"Sie können Ihren Code erst ausführen, nachdem alle Verweise aufgelöst sind. Für diesen Fehler gibt es die folgenden Ursachen und Lösungen:
- Ein referenziertes Projekt wurde nicht gefunden, oder eine referenzierte Objektbibliothek für die Sprache des Projekts wurde nicht gefunden.
Nichtaufgelösten Verweisen wird die Zeichenfolge "FEHLT:" im Dialogfeld Verweise vorangestellt. Wenn Sie den fehlenden Verweis auswählen, erscheint der Pfadname und die Sprache des fehlenden Projekts oder der fehlenden Bibliothek. [...]"

Die einem fehlerhaften Verweis vorangestellte Zeichenfolge wird mit "FEHLT:" angegeben. Das ist nicht korrekt. Die tatsächlich verwendete Zeichenfolge lautet "NICHT VORHANDEN:".

To Top

 


Dokumentierte Bugs und Probleme

Excel / Office

XL97/OFFICE97: Public/Global Variables Not Maintained After Error
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q213248

arrow_r.gif (830 Byte) Dieser Artikel beschreibt das Verhalten der VBE, bei dem bei Auftreten eines Fehlers sämtliche Variablen zurückgesetzt werden.

XL97: Crash Saving Workbook If Module Name Contains Equal Sign
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q159877
arrow_r.gif (830 Byte) Dieser Artikel beschreibt ein seltenes Speichern-Problem.

OFFICE97: Error Messages When Editing, Running, or Recording VBA Macros in Office 97 Application on Windows 2000
When a user accesses VBA for the first time, VBA creates a file named MSForms.exd in the user's temporary folder. This file is a type library that VBA caches for a COM object and is required for FM20/MSForms to function correctly. Once VBA creates the type library file, it then attempts to register it; if the user does not have write access to required registry keys, the registration fails. Consequently, VBA fails to initialize properly and various errors might occur on attempts to use VBA in Office 97 applications.
http://support.microsoft.com/default.aspx?scid=kb;en-us;264743

XL97/XL2000: Compile Error Passing ParamArray
Error Message "Compile Error: Invalid ParamArray use"
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q159877
arrow_r.gif (830 Byte) Dieser Artikel beschreibt eine höchst interessante Eigenheit von Parameter-Arrays.

XL2000/OFFICE2000: Public Variables Are Not Maintained After Error
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q155457

arrow_r.gif (830 Byte) Dieser Artikel beschreibt das Verhalten der VBE, bei dem bei Auftreten eines Fehlers sämtliche Variablen zurückgesetzt werden.

XL2000/OFFICE2000: Module-Level Variables Are Reset to Their Default Values
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q231089

XL2000/OFFICE2000: The Watch Window Does Not Use the Procedure Call Context
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q213739

arrow_r.gif (830 Byte) Dieser Artikel informiert über mögliche Falschinformationen im Überwachungsfenster, weil Überwachungspunkte die Aufrufeliste (Call Stack) berücksichtigen.

XL2000/OFFICE2000: Modules Cannot Be Printed in Color
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q213191
arrow_r.gif (830 Byte) Dieser Artikel erläutert, dass der in Projekt-Modulen eingetragene VBA-Programmcode nicht in Farbe ausgedruckt werden kann.

XL2000: Cannot Import/Export UserForms Between VBA and Visual Basic
http://support.microsoft.com/default.aspx?scid=kb;en-us;213551

XL2000: Grouped Drawing Objects Run Separate Macros
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q213233

XL2000/OFFICE2000: Error Starting Visual Basic Editor with Outdated Oleaut32.dll
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q224315

XL2000/OFFICE2000: OnAction Property Code Doesn't Run As Expected When You Click Command Button
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q280607

XL2000/OFFICE2000: Endless Loop When Macro Modifies Files in a Folder
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q254889
arrow_r.gif (830 Byte) Dieser Artikel beschreibt ein ungewöhnliches Verhalten der Dir-Funktion, das zu einer Endlosschleife führt.

XL2000: Excel Stops Responding When You Run VBA Macro Code That Displays a User Form
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q317850

XL2000: No Error Message Returned to VBA on Failed Save
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q269521
arrow_r.gif (830 Byte) Hier wird beschrieben, dass in bestimmten Situationen VBA nicht meldet, dass die Mappen-Speicherung fehlschlug. Dieses Problem wurde in Microsoft Office 2000 Service Pack 2 behoben.

XL2000: Visual Basic for Applications Project Replaced by Unexpected Project
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q215578

XL2002: Excel Functionality Missing When VBA Is Not Enabled
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q282847
arrow_r.gif (830 Byte) Dieser Artikel informiert über nicht verfügbare Features bei Deaktivierung von VBA.
Weitere Informationen: OFFICE2002: Considerations for Disabling VBA in Office XP
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q287567
Weitere Informationen: OFFICE2002: Features Turned off When Visual Basic for Applications Is Not Installed
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q281953

XL2002: Unable to Record Macro and No VBA Projects Shown After You Install Office 2000
Error Message "Unable to record."
http://support.microsoft.com/default.aspx?scid=kb;en-us;293287

 

VBIDE / VBE

VB/VBE: Determine the IDE Mode From an Add-In
http://support.microsoft.com/default.aspx?scid=kb;en-us;214743

VBA5/VBA6: VBA6 Extensibility Library Breaks Code Written for VBA5 Extensibility Library
http://support.microsoft.com/default.aspx?scid=kb;en-us;244224

 

Macintosh

VBE WD98: Underscore Characters Not Printed from Visual Basic Editor
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q177345

VBE OFFICE98: Insertion Point Does Not Stay at End of Text in UserForm
http://support.microsoft.com/default.aspx?scid=kb;en-us;179941

To Top

 


Weitere Informationen

OFFICE: Overview of Visual Basic Editor Debugging Tools
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q165517
arrow_r.gif (830 Byte) Dieser Artikel stellt die Debugging-Werkzeuge und -Funktionen der VBE vor. Die Beschreibung gilt für Office 97, Office 2000 und Office 2002.

OFFICE: Changes to Microsoft Visual Basic for Applications
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q161609
arrow_r.gif (830 Byte) Dieser Artikel beschreibt alle gegenüber den Versionen Excel 95 und älter vorgenommenen Änderungen und Erweiterungen im VBA-Editor. Die Beschreibung gilt für Office 97, Office 2000 und Office 2002.

OFFICE2002: Considerations for Disabling VBA in Office XP
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q287567
arrow_r.gif (830 Byte) Dieser Artikel geht auf das Thema "Deaktivieren von VBA in Office XP" ein.
Weitere Informationen: XL2002: Excel Functionality Missing When VBA Is Not Enabled
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q282847

OFFICE2002: Features Turned off When Visual Basic for Applications Is Not Installed
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q281953
arrow_r.gif (830 Byte) Dieser Artikel geht auf das Thema "Deaktivieren von VBA in Office XP" ein.
Weitere Informationen: XL2002: Excel Functionality Missing When VBA Is Not Enabled
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q282847

To Top

WB01727_.gif (1537 Byte)

Haben Sie Fragen, Anregungen oder einen Fehler entdeckt?
Senden Sie mir ein Mail

Zuletzt aktualisiert am 21.04.2005 / 18:30 Uhr
© 2002-2005 by Philipp von Wartburg, CH-8916 Jonen
Alle Rechte vorbehalten