![]() |
Was
ist der XLB-Defragmentor?
Warum sollte man die
xlb-Datei defragmentieren?
Was macht der XLB-Defragmentor?
Welchen
Nutzen besitzt der XLB-Defragmentor?
Was macht den XLB-Defragmentor so einzigartig?
Der XLB-Defragmentor ist ein weltweit einzigartiges Tool zum Aufräumen der xlb-Datei von Microsoft Excel. In der xlb-Datei speichert Excel alle Informationen über benutzerdefinierte Symbolleisten und Steuerelemente. Mit der Zeit nimmt die Dateigrösse zu, da irrtümlich immer mehr fehlerhafte Daten in der Datei mitgeführt werden, also Daten, die eigentlich gelöscht sein sollten.
Der xlb-Defragmentor misst den Fragmentierungsgrad, analysiert die xlb-Datei, entfernt alle fehlerhaften Informationen und korrigiert falsche Daten. Je nach Menge der gelöschten Daten wird die xlb-Datei erheblich kleiner.
Warum sollte man die xlb-Datei defragmentieren?
Bei einer zu grossen bzw. zu stark fragmentierten xlb-Datei besteht die Gefahr, dass sie defekt wird und von Microsoft Excel nicht mehr gelesen werden kann. Ist die Datei einmal beschädigt, so muss sie gelöscht werden. Es existiert keine Möglichkeit zum Reparieren der xlb-Datei. Sämtliche vom Benutzer vorgenommen Anpassungen an Symbolleisten und Steuerelementen gehen somit unwiderruflich verloren.
Einmal abgesehen davon, dass eine kleine, aufgeräumte und fehlerfreie xlb-Datei ganz generell zu empfehlen ist, gibt es mehrere Gründe, warum die xlb-Datei defragmentiert werden sollte:
Die
xlb-Datei wird nicht mehr defekt
Bei einer aufgeräumten, defragmentierten xlb-Datei ist die
Wahrscheinlichkeit sehr viel kleiner, dass sie defekt wird. Vereinfacht ausgedrückt nimmt
nämlich die Gefahr einer Dateibeschädigung mit der Dateigrösse zu. .
Die
xlb-Datei wird kleiner
Bei der mittels XLB-Defragmentor durchgeführten Defragmentierung werden
in erster Linie fehlerhafte Daten aus der xlb-Datei entfernt. Dadurch wird die Datei
kleiner. Bei einer sehr grossen, stark fragmentierten Datei ist eine Grössenreduktion von
99 % absolut realistisch. Ist zum Beispiel eine 5 MB grosse xlb-Datei nach der
Defragmentierung noch 50 KB gross, so beträgt die Grössenreduktion 4.95 MB oder eben 99
%.
Die grösste xlb-Datei, die ich jemals mit dem XLB-Defragmentor defragmentiert habe, war
unglaubliche 17.3 MB gross. Nach der Defragmentierung betrug die Dateigrösse noch ganze
38 KB. Die Datei war somit 455 mal (!) kleiner, was einer Reduktion von 99.78 %
entspricht. Es muss an dieser Stelle erwähnt werden, dass diese 17.3 MB grosse xlb-Datei
speziell für Testzwecke erstellt wurde. Würde man mit einer derart grossen Datei
arbeiten, so wäre sie innerhalb kürzester Zeit defekt und nicht mehr lesbar.
Aus Sicht des Festplattenspeichers ist eine grössere xlb-Datei von sagen wir mal
500 KB nicht weiter schlimm. Insbesonderen in Unternehmen jedoch werden verschiedene
Benutzer-Verzeichnisse auf einem Netzwerkserver gespeichert, wobei jedem Benutzer ein
festgelegter maximaler Speicherplatz von beispielsweise 10 MB zur Verfügung steht
(sogenannte Disk Space Quota). Wenn nun die xlb-Datei ständig grösser wird, ist irgend
wann der zugeteilte Speicherplatz erschöpft.
Der
Start von Microsoft Excel wird beschleunigt
Es ist nachvollziehbar, dass die Dauer zum Laden einer kleinen Datei
kürzer ist als zum Laden einer grossen Datei. Beim Excel-Start wird die xlb-Datei
eingelesen, was folglich bei einer grösseren Datei mehr Zeit beansprucht. Je nach Grösse
der Datei ist ein Unterschied von mehreren Sekunden festzustellen.
Das
Beenden von Microsoft Excel wird beschleunigt
Dieser Punkt ist insbesondere für Programmierer wichtig, die in ihren
Programmen mittels Automation auf Microsoft Excel zugreifen. Wenn man als Anwender Excel
wie gewohnt verlässt (z.B. über Menü Datei/Beenden), so wird das
Anwendungsfenster geschlossen und Excel beendet. Dieser Vorgang dauert nur kurz; auch bei
einer grossen xlb-Datei. Was man allerdings als Benutzer nicht sieht, ist, dass nach dem
Verschwinden des Anwendungsfensters Excel noch nicht vollständig beendet ist. Excel ist
noch eine ganze Weile damit beschäftigt, die aktualisierte xlb-Datei auf die Festplatte
zurück zu schreiben. Bei einer beispielsweise 10 MB grossen Datei können ohne weiteres
10 Sekunden oder mehr vergehen, bis der Excel-Prozess definitiv beendet ist. Ich habe
schon Arbeitsstationen angetroffen, die mehr als 20 Sekunden benötigten. Bezüglich
Excel-Automation bedeutet dies, dass nach Beenden einer Excel-Instanz der Prozess noch
lange nicht beendet sein muss.
Wenn Sie mit VBA oder VB ein
Programm zum Steuern von Microsoft Excel schreiben, so werden Sie im Programmcode die
Excel-Instanz mit der Quit-Methode beenden. Es ist ohne weiteres möglich, dass nach
Ausführen der beiden Codezeilen "xlApp.Quit" und "Set xlApp =
Nothing" der Excelprozess bei einer grossen xlb-Datei noch beispielsweise 10 Sekunden
lang weiterläuft. Nicht vergessen sollte man hierbei, dass dadurch die xlb-Datei
ebenfalls erst nach rund 10 Sekunden vollständig auf die Festplatte zurückgeschrieben
ist. Eine unmittelbar nach den beiden erwähnten Anweisungen ausgeführte FileCopy-Anweisung
zum Kopieren der xlb-Datei würde daher fehlschlagen, weil der Schreibvorgang noch nicht
abgeschlossen und somit die Datei gesperrt ist.
Man könnte nun sagen, dass es wohl kaum schlimmt ist, wenn man als Excel-Benutzer einmal
eine Wartezeit von 20 Sekunden in Kauf nehmen muss. Das stimmt zwar. So darf man jedoch
nicht rechnen. Gewöhnlich startet und beendet man als Anwender Microsoft Excel mehrmals
am Tag. Wenn man Excel 5 Mal startet und beendet, entsteht bereits eine Wartezeit von
einer Minute (5 x 20 Sekunden). Mich persönlich würde es stören, wenn ich während der
Arbeit eine Minute warten muss, somal das ganze ohne Aufwand auch in 5 Sekunden (5 x 1
Sekunde). Es muss lediglich die xlb-Datei defragmentiert werden.
Es
wird weniger Arbeitsspeicher beansprucht
Auch dieser Aspekt sollte beachtet werden. Wenn
beispielsweise Microsoft Excel 97 mit einer 5.5 MB grossen xlb-Datei gestartet wird, so
belegt die Anwendung 15.5 MB Arbeitsspeicher. Wird Excel aber mit einer 20 KB grossen
xlb-Datei gestartet, werden lediglich 7.5 MB Speicher beansprucht. Es wird somit 8 MB
weniger Arbeitsspeicher benötigt.
Ein weiterer Punkt ist die erhöhte Speicherbeanspruchung beim Beenden von
Excel. Wie erwähnt belegt Excel 15.5 MB Arbeitsspeicher bei einer 5.5 MB grossen
xlb-Datei. Beim Beenden von Excel steigt der Speicherverbrauch vorübergehend auf rund 24
MB an, da die in die xlb-Datei zu speichernden Informationen im Arbeitsspeicher
aufbereitet werden müssen. Dieser Vorgang dauert je nach CPU-Geschwindigkeit mehrere
Sekunden. Erst anschliessend wird die aktualisierte xlb-Datei auf die Festplatte
zurückgeschrieben. Ist auch dieser Vorgang durchgeführt, wird der Excel-Prozess beendet
und der belegte Speicher freigegeben.
Die
xlb-Datei wird nicht mehr irrtümlich gelöscht
Es ist tatsächlich der Fall, dass in einer bestimmten Situation eine
grosse xlb-Datei irrtümlich von Excel gelöscht wird. Die Löschung ist endgültig und
kann nicht rückgängig gemacht werden, was bedeutet, dass sämtliche benutzerdefinierten
Anpassungen an Symbolleisten und Steuerelementen unwiderruflich verloren sind. Die
angesprochene Situation ist alles andere als selten. Wie weiter oben erwähnt wurde,
benötigt Excel bei einer grossen xlb-Datei mehrere Sekunden, bis die Datei vollständig
gespeichert ist. Wenn Sie Excel erneut ausführen, bevor die xlb-Datei fertig auf die
Festplatte zurückgeschrieben ist, kann die Datei beim Excel-Start nicht geladen werden,
da sie vom vorherigen Excelprozess infolge des noch laufenden Schreibvorganges gesperrt
wird. Als Folge startet Excel ohne benutzerspezifische Symbolleisten und Steuerelemente.
Da aus Sicht von Excel beim Start keine (verfügbare) xlb-Datei vorhanden war, wird beim
Beenden eine neue, leere xlb-Datei erstellt und somit die vorhandene, inzwischen
vollständig zurückgeschriebene Datei einfach überschrieben. Als Benutzer können Sie
die abgeschlossene Speicherung nur anhand der Grösse der xlb-Datei erkennen. Solange der
Schreibvorgang läuft, wird im Windows Explorer die Dateigrösse mit 0 KB oder 1 KB (bzw.
22 Bytes) angezeigt.
Dieses fehlerhafte Verhalten tritt bei allen Excelversionen auf. Es
ist insbesondere bei Microsoft Excel 2002/XP ein Problem, da diese Excelversion
vergleichsweise viel Zeit zum Schreiben der xlb-Datei benötigt und es dadurch oft zum
Datenverlust kommt. Microsoft hat daher eigens für die Behebung dieses Problems einen
speziellen Hotfix bereitgestellt (siehe MS KB-Artikel 330345 "Custom Toolbars Are Lost After You Quit
Excel"). Dieser Hotfix ist nicht im derzeit aktuellen Service Pack, dem Microsoft
Office XP Service Pack 2, enthalten. Er wird erst Bestandteil des nächsten, allerdings
noch nicht angekündigen Service Packs 3 sein (sofern es jemals ein Service Pack 3 geben
wird). Für Excel 97 und 2000 existiert kein Hotfix. In diesen beiden Versionen ist das
Problem somit nach wie vor vorhanden. Nebenbei erwähnt ist auch Excel 2003 von diesem
Problem betroffen. Für diese Version existiert ebenfalls kein Hotfix.
Die
an eine Arbeitsmappe angebundenen Symbolleisten werden korrekt geladen
Es kann passieren, dass beim Öffnen einer Arbeitsmappe die in der
Arbeitsmappendatei gespeicherte Symbolleiste nicht geladen wird. Wenn die xlb-Datei eine
bestimmte Grösse erreicht hat bzw. eine bestimmte Menge an Informationen enthält, so
steht nicht genügend Speicher zum Laden der in der Mappendatei enthaltenen Symbolleiste
zur Verfügung. Als Folge wird die Symbolleiste beim Öffnen der Arbeitsmappe nicht
geladen und somit nicht angezeigt, und sie kann auch nicht über das
"Anpassen"-Dialogfenster eingeblendet werden. Für Microsoft Excel existiert
diese Symbolleiste ganz einfach nicht. Verwirrend ist insbesondere, dass im Dialogfenster
"Symbolleiste anbinden", welches über die Schaltfläche "Anfügen"
des "Anpassen"-Dialogfensters geöffnet wird, die Symbolleiste ebenfalls nicht
aufgeführt wird. Dass sie dennoch in der Mappe enthalten ist und von Excel sogar erkannt
wird, stellt man fest, wenn man die Arbeitsmappe unter einem anderen Namen speichert. Die
scheinbar nicht existierende bzw. geladene Symbolleiste wird korrekt in der neuen Mappe
gespeichert. Es sollte zudem beachtet werden, dass es keine Möglichkeit gibt, die
angebundene Symbolleiste zu entfernen, da sie wie erwähnt im Dialogfenster
"Symbolleiste anbinden" nicht aufgelistet ist und somit auch die Schaltfläche
"Löschen" nicht existiert.
Der XLB-Defragmentor behebt alle oben vorgestellten Probleme. Das Tool kann aber noch viel mehr:
- Über den Excel-Menübefehl 'Makro zuweisen' kann man einem benutzerdefinierten Menü, Menübefehl oder einer Symbolleisten-Schaltfläche den Pfad-, Datei- und Makroname des auszuführenden Makros definieren. Der XLB-Defragmentor überprüft, ob die Datei, welche das zugewiesene Makro enthält, im angegebenen Verzeichnis tatsächlich existiert. Anhand verschiedener Programm-Optionen können Sie einstellen, ob diese Überprüfung ausgeführt werden soll, ob falsche Dateiangaben lediglich im Analysereport angezeigt oder aber automatisch geändert werden sollen, und, falls sie geändert werden sollen, die Angaben automatisch korrigiert oder entfernt werden sollen.
- Indizes von Menü-Datenelementen reorganisieren
- Verwalten von xlb-Dateien
-
Was macht der XLB-Defragmentor?
Welchen Nutzen besitzt der XLB-Defragmentor?
Durch die Art und Weise wie Microsoft Excel Symbolleisten im Speicher verwaltet, kommt es gelegentlich vor, dass - insbesondere durch unsauberes Löschen von benutzerdefinierten Menüs - fehlerhafte und somit überflüssige Informationen in der xlb-Datei gespeichert werden. Diese Informationen bleiben für immer in der Datei liegen, da Excel selbst keine Bereinigung vornimmt. Man kann weder über die Excel-Arbeitsoberfläche noch mit einem herkömmlichen VBA-Makro die xlb-Datei von den fehlerhaften Daten befreien. Mit anderen Worten: Auch wenn Sie über das Anpassen-Dialogfenster sämtliche benutzerdefinierten Symbolleisten und Steuerelemente löschen und alle integrierten Symbolleisten zurücksetzen, bleiben die fehlerhaften Daten in der xlb-Datei liegen. Auch ein entsprechendes VBA-Makro, d.h. das Löschen bzw. Zurücksetzen aller Objekte der CommandBars-Auflistung nützt nichts. Der XLB-Defragmentor jedoch kann die fehlerhaften Daten entfernen.
Was macht den XLB-Defragmentor so einzigartig?
Konfigurations- und Customizing-Möglichkeiten
Der XLB-Defragmentor besitzt über 100 (!) Einstellungen, mit denen Sie das Tool konfigurieren und Ihren Bedürfnissen entsprechend anpassen können. Die Einstellungen werden für jeden Benutzer separat gespeichert. Auch wenn die Software in einem gemeinsam benutzten Verzeichnis abgelegt ist, werden beim Programmstart immer Ihre persönlichen Einstellungen angewendet.
Während der Verarbeitung Notebook in Ruhezustand versetzen
Wenn Sie einen Notebook verwenden und eine sehr grosse xlb-Datei besitzen, deren Defragmentierung sehr lange - beispielsweise mehrere Minuten - dauert, so können Sie den Notebook während der laufenden Verarbeitung in den Ruhezustand versetzen. Sobald der Ruhezustand aufgehoben wird, läuft die pausierte Verarbeitung weiter.
Berücksichtigung sämtlicher Verursacher von Symbolleisten-Änderungen
Der
XLB-Defragmentor berücksichtigt bei der Verarbeitung nicht nur die in der xlb-Datei
gespeicherten Daten über Symbolleisten. Nebst der xlb-Datei existieren mehrere weitere
"Verursacher" von Symbolleisten-Anpassungen:
- Registry-Einträge (Schlüssel "Init Commands" und "Init Menus")
- Excel 4-Makros
- VBA-Programmcode
- Automation-Programme
- Angebundene Symbolleisten
Verarbeitungsunabhängige Fragmentierungsgrad-Messung
Der Fragmentierungsgrad kann unabhängig von der Defragmentierung gemessen werden. Dadurch können Sie jederzeit feststellen, ob und wie stark Ihre xlb-Datei fragmentiert ist, ohne dass Sie eine Defragmentierung durchführen müssen.
Zwei Defragmentierungsmethoden zur Auswahl
Für die Defragmentierung stehen zwei verschiedene Methoden zur Verfügung: Die Standard-Defragmentierung und die erweiterte Defragmentierung.
Automatischer Start der Defragmentierung
Mit dem so genannten 'AutoStart Mode' kann die Standard-Defragmentierung automatisch unmittelbar nach Ausführen des XLB-Defragmentors angestossen werden. Bei diesem Modus wird wie üblich das Anwendungsfenster angezeigt und die Defragmentierung durchgeführt. Es werden jedoch keine Meldungsdialoge ausgegeben. D.h. dass die Verarbeitung vollständig automatisiert und ohne Benutzer-Interaktion abläuft. Nach durchgeführter Verarbeitung wird der XLB-Defragmentor automatisch beendet.
Verarbeitung im Hintergrund
Die Verarbeitung im Hintergrund wird wie beim AutoStart Mode nach dem Programmstart automatisch durchgeführt. Bei der Verarbeitung im Hintergrund ist auf dem Bildschirm das Anwendungsfenster des XLB-Defragmentors nicht zu sehen.
Läuft mit allen Windows- und Excelversionen (egal welche Service Packs)
Automatische Korrektur einer fehlerhaften Excel-Konfiguration (nach Absturz)
Festhalten aller Aktionen in Protokolldateien
Verarbeitung von "fremden" xlb-Dateien
Automatische Erstellung von Sicherungskopien der xlb-Datei
Erstellen eines detaillierten Reports
Exportieren von Steuerelement-Symbolen als Bilddatei
Analyse ohne Defragmentierung durchführbar
Sie können jederzeit eine Analyse der xlb-Datei durchführen, ohne dass die Datei defragmentiert wird.
Funktionen für xlb-Datei kopieren, verschieben, umbenennen, löschen etc.
Copyright © 2003-2005 Philipp von Wartburg, CH-8916 Jonen. All rights reserved.