Allgemeines über defekte Arbeitsmappen
Der kleine Unterschied zwischen "beschädigt" und "zerstört"
Wie erkennt man eine defekte Arbeitsmappe?
Die Fehlermeldungen "Ungültiges Datenformat" und "Ungültiges Dateiformat"
So kann eine Arbeitsmappe zerstört werden
Massnahmen zur Vermeidung von beschädigten Arbeitsmappen
Allgemeines über defekte Arbeitsmappen
Auf dieser Seite möchte ich vorstellen, wie man mit defekten Arbeitsmappen umgeht und wie man sie absichtlich zerstören können. Ziel ist es natürlich nicht, dass Sie die hier aufgeführten Informationen dazu benutzen, um eine von einer anderen Person erstellte Mappe vorsätzlich so zu modifizieren, dass sie nicht mehr geöffnet oder gespeichert werden kann. Es geht vielmehr darum zu erkennen, wie eine Mappe zerstört werden kann und warum das so ist. Diese Erkenntnisse sollen (bzw. werden) Ihnen helfen, insbesondere bei der Programmierung von VBA-Makros auf bestimmte Dinge wie "riskante" Codezeilen zu achten (riskant im Sinne von gefährlich bezüglich potenziellen Dateiproblemen).
Im Übrigen handelt es sich bei den vorgestellten Instruktionen nicht um geheime Informationen sondern um offizielle von Microsoft Support veröffentlichte Angaben. Zudem lässt sich jede beiliebige auf einem Computer gespeicherte Datei im Handumdrehen in Datenmüll verwandeln; dazu braucht es weder Excel noch VBA - ein Hex-Editor wie zum Beispiel das Tool FxEdit genügt dazu.
Das Tool FxEdit ist Freeware und kann auf der Download-Seite heruntergeladen werden:
Weitere Informationen über Probleme mit Dateien finden Sie hier:
Verwandte Themen |
|
|
Der kleine Unterschied zwischen "beschädigt" und "zerstört"
Eine defekte Arbeitsmappe muss nicht zwangsläufig vollständig zerstört sein. Manchmal erkennt man sogar eine nicht mehr zu 100 Prozent intakte Mappe gar nicht auf den ersten Blick. Dass eine Mappe defekt ist, muss somit nicht heissen, dass sie nicht mehr geöffnet werden kann. In diesem Fall ist die Exceldatei nicht zerstört sondern "nur" beschädigt. Diese Differenzierung ist in der Tat wichtig, da bei einer zerstörten Mappe die Dateistruktur so stark defekt ist, dass die Datei nicht mehr mit Excel geöffnet werden kann. Eine beschädigte Arbeitsmappe dagegen kann oft noch geöffnet werden, wobei jedoch während der Bearbeitung oder beim Speichern Fehlermeldungen auftreten (siehe Kapitel "Die Fehlermeldungen 'Ungültiges Datenformat' und 'Ungültiges Dateiformat'").
Das folgende Schema zeigt die beiden Ausprägungen einer defekten Arbeitsmappe 'beschädigt' und 'zerstört' sowie ihre Merkmale:

Abbildung: Beschädigte und zerstörte Arbeitsmappen
Doch wie erkennt man eine defekte Arbeitsmappe und wie sieht diese aus? Die Antwort auf diese Frage erhalten Sie im nächsten Abschnitt.
Weitere Informationen über Fehlermeldungen erhalten Sie hier:
Weitere Informationen |
|
Wie erkennt man eine defekte Arbeitsmappe?
Es gibt kein allgemein gültiges Rezept, wie man eine defekte Arbeitsmappe erkennen kann. Das wohl eindeutigste Merkmal ist das Auftreten einer Fehlermeldung beim Öffnen der Mappe. Doch nicht jede Fehlermeldung muss zwangsläufig bedeuten, dass die Arbeitsmappe tatsächlich defekt ist.
Die Fehlermeldungen "Ungültiges Datenformat" und "Ungültiges Dateiformat"
Es gibt zwei Fehlermeldungen, die sich lediglich durch einen einzigen Buchstaben im Meldungstext unterscheiden.

Abbildung: VB-Fehlermeldung "Ungültiges Datenformat"

Abbildung: Excel-Fehlermeldung "<Datei.xls> hat ein
ungültiges Dateiformat"
Weitere Informationen |
|
Die aus einer Datei gelesenen Daten entsprechen nicht dem erwarteten Format. Für diesen Fehler gibt es die folgenden Ursachen und Lösungen:
Eine Projekt-
oder Objektbibliotheks-Datei ist entweder beschädigt oder liegt in einem Format vor, das
nicht interpretiert werden kann.
Fordern Sie eine neue Version der
Projekt- oder Objektbibliotheks-Datei an.
Sie haben
versucht, eine .EXE-Datei in ein Modul zu laden.
Laden Sie statt dessen
den Quell-Code.
Sie haben das
Dialogfeld Verweise und den Objektkatalog verwendet, um einen Verweis auf eine Datei
hinzuzufügen, die keine gültige Objektbibliothek ist, oder die ein Basic-Projekt
enthält, dessen Format von der Host-Anwendung nicht unterstützt wird. Microsoft Excel
kann beispielsweise Dateien mit der Endung .bas oder .frm nicht interpretieren. Dasselbe
gilt für Microsoft Project-Dateien, die Basic-Code enthalten.
Laden Sie die fragliche
Datei in der Anwendung, in der sie erstellt wurde, und speichern Sie sie dann in einem
kompatiblen Format. Der Quell-Code der Objektbibliothek kann beispielsweise von MKTYPLIB
und QuickBasic verarbeitet werden, und Visual Basic-Code kann im Textformat gespeichert
werden usw.
Es kann vorkommen, dass beim Öffnen einer Arbeitsmappe ein schwerer Anwendungsfehler auftritt.
Bei Windows 95, Windows 98 und Windows ME erscheint diese oder eine ähnliche Fehlermeldung:

Abbildung: Fehlermeldung "Excel hat in MSO97.DLL einen
Fehler verursacht" (Windows ME)
Bei Windows NT 4 erscheint der Dr. Watson; bei Windows 2000 und Windows XP vermutlich eine ähnliche Fehlermeldung:

Abbildung: Dr. Watson: "Ein Anwendungsfehler ist
aufgetreten" (Windows NT)
Wohlgemerkt ist die Arbeitsmappendatei nicht defekt!
Das Problem ist "nur", dass die Excel-interne Öffnen-Routine die 256. Datenreihe nicht interpretieren kann und das Programm sofort abstürzen lässt.
So kann eine Arbeitsmappe zerstört werden
Es existieren verschiedene Möglichkeiten zum Zerstören einer Arbeitsmappe, wobei praktisch alle auf (vorsätzlich) unsachgemäss programmierten VBA-Code basieren.
Massnahmen zur Vermeidung von beschädigten Arbeitsmappen
Auf diese Frage gibt es keine abschliessende Antwort, da zu viele Faktoren für das Entstehen einer defekten Exceldatei verantwortlich sein können. Alle Risiken lassen sich verständlicherweise nicht ausschliessen, da man konsequenterweise z.B. keine auf einem LAN-Server liegende Arbeitsmappen mehr benutzen dürfte, weil Server bzw. Netzwerke nie zu 100 Prozent ausfallsicher sind (ein Netzwerkunterbruch kann zu Speichern-Problemen und in seltenen Fällen zu defekten Dateien führen).
Hier eine Liste meiner persönlichen Empfehlungen:
Benutzen Sie Arbeitsmappen möglichst nicht zweckentfremdet. Bedenken Sie, dass Microsoft Excel ein Tabellenkalkulationsprogramm ist, und kein Zeichnen-Programm oder eine Textverarbeitung. Gehen Sie daher sparsam mit beispielsweise eingebetteten Steuerelementen und anderen Objekten um.
Speichern und Öffnen Sie Arbeitsmappen-Dateien nie direkt von einer Diskette. So vermeiden Sie Speicherplatz-Probleme. Beachten Sie, dass zum Speichern einer Exceldatei auf der Diskette mindestens so viel freier Platz sein wie die Excel-Datei selbst bereits benötigt, da die temporäre Datei der Mappe ebenfalls Platz beansprucht. Das bedeutet, dass auf einer 1.44 MB-Diskette höchstens eine 720 KB-Arbeitsmappe gespeichert werden kann.
Speichern und
Öffnen Sie insbesondere grössere Exceldateien nicht von ausfallgefährdeten Netzwerken
oder problematischen Festplatten. Damit sind insbesondere alte Festplatten mit häufigen
Hardware- bzw. CRC-Fehlern gemeint. Excel benutzt als eines der wenigen Programmen zum
Lesen/Schreiben von Dateien eine spezielle Technik genannt "Back Seeking". Durch
dieses spezielle I/O-Verfahren wird eine Datei nicht sequentiell gelesen/geschrieben
sondern in einzelnen Records, wobei die Records nicht in ihrer eigentlichen Reihenfolge
verarbeitet werden müssen. So kann eine Arbeitsmappe beispielsweise geöffnet werden,
indem zuerst der erste Dateirecord eingelesen wird, dann der fünfzehnte Record
angespruchen und eingelesen wird, danach zurück der dritte Record angesprungen und
eingelesen wird und so weiter. Bei einem Netzwerkausfall oder einer Festplatte mit ungenau
justierten Lese-/Schreib-Köpfen erhöht sich das Risiko, dass der Back Seeking-Vorgang
unterbrochen wird oder die einzelnen Records nicht exakt angesprungen werden können.
Weitere Informationen über die Back Seeking-Technik finden Sie hier.
Das Speichern von grossen Arbeitsmappen in einem WAN (Wide Area Network) kann im Vergleich zu einer lokalen Festplatte oder einem LAN (Local Area Network) überdurchschnittlich lange dauern. Dies ist vor allem bei Arbeitsmappen mit einem VBA-Projekt mit mehreren Benutzerformularen und vielen Steuerelementen der Fall. Beim Schreibvorgang wird jedes einzelne Steuerelement nacheinander in die Datei geschrieben und dazwischen immer abgewartet, bis vom "Schreibmodul" (vereinfacht ausgedrückt) die Rückmeldung erhalten wurde, dass das Control korrekt gespeichert werden konnte. Erst nach Eingang dieser Meldung wird das nächste Steuerelement zum "Schreibmodul" geschickt. Da ein WAN aufgrund den grossen Distanzen zwischen Arbeitsstationen und Server eher langsam ist, kann das Abspeichern einer Arbeitsmappe mit vielen Steuerelementen sehr lange dauern.
Kompilieren vor dem Speichern eines Excel Add-Ins.
Keine duale bzw. Hybrid-Formate verwenden.
Zusätzliche Arbeitsmappen-Fenster schliessen.
Option "Externe Verknüpfungswerte speichern" deaktivieren.
Metadaten entfernen.
Alter VBA-Code entfernen (z.B. mit dem Freeware Tool "Code Cleaner" oder "vbClear").
Verwandte Themen |
|
Zuletzt aktualisiert am 5.05.2005
/ 23:00 Uhr
© 2002-2005 by Philipp von Wartburg, CH-8916 Jonen
Alle Rechte vorbehalten