Allgemeines
über die Dateigrösse von Arbeitsmappen
Das
Arbeitsmappen-Dateiformat BIFF
Maximale
Grösse einer Arbeitsmappendatei
Einflussfaktoren
bezüglich Dateigrösse
Art
und Weise der Informationsspeicherung
Typ der
Zelldaten in der Arbeitsmappe
Desing der Arbeitsmappe
Darstellung der
Informationen
Verwendete Features
Weitere Faktoren
Objekte
und ihr Einfluss auf die Dateigrösse
Auswirkungen
von Spalten- und Zellen-Formatierungen
Duale Dateiformate
Allgemeines über duale Dateiformate
Die Back
Seeking-Technik
Speichern einer
Arbeitsmappe
Öffnen einer
Arbeitsmappe
Grösse
einer Datei mit dualem Format
Nachteile des
dualen Dateiformats
Zusammenhang
zwischen Dateigrösse und Arbeitsspeicher
Häufig
gestellte Fragen bezüglich Dateigrösse
Warum ist
die Datei nach dem Löschen von Zellformatierungen grösser? ![]()
Wieso
wird die Datei durch das Ein-/Ausblenden von Zeilen um ein Vielfaches grösser? ![]()
Warum
ist die Datei nach dem Speichern, Schliessen und erneuten Öffnen plötzlich kleiner?
Wieso
ist die Datei nach dem Kompilieren des VBA-Projektes zum Teil erheblich grösser?
Werden in
einer Exceldatei Informationen über Undo-Schritte gespeichert?
Gibt
es in Excel eine Art Komprimierungsfunktion wie in Microsoft Access?
Wie kann man eine
Exceldatei schnell und einfach verkleinern?
Gibt es
nützliche Tools zum Verkleinern von Arbeitsmappendateien?
Wieso ändert
sich die Dateigrösse je nach aktiviertem Arbeitsblatt?
Warum
wird die Datei durch Ausschalten der Zeilen-/Spaltenköpfe und Gitternetzlinien viel
kleiner?
Darf
man sämtliche Blätter in eine neue Mappe kopieren, damit die Datei kleiner wird?
Welche Rolle spielt
das Grafikformat eines eingefügten Bildes?
Wieso
ändert sich die Dateigrösse beim Speichern der Mappe in einem anderen Ordner?
Wie
kann man eine als XML Spreadsheet-Datei gespeicherte Mappe verkleinern?
Warum
ist eine mit Excel 2003 gespeicherte Arbeitsmappendatei kleiner als mit einer älteren
Excelversion?
Warum
wird eine freigegebene Mappe grösser, obwohl keine Änderungen vorgenommen werden (ohne
Änderungsprotokoll)?
Wieso
ist die Mappe nach dem Speichern plötzlich grösser, ohne dass Änderungen vorgenommen
wurden?
Wieso
nimmt die Dateigrösse durch das erstmalige Ausdrucken von Blättern zu?
Wie stark
beeinflusst die Mappenfreigabe die Grösse einer Exceldatei?
Was sollte man bei
der Makroarbeitsmappe Personl.xls beachten?
Wie wichtig ist die
Dateigrösse eines Excel Add-Ins (xla-Datei)?
Warum
ist die Datei mit Programmcode im Workbook_Open-Ereignis nach dem Speichern grösser?
Wie gross ist das VBA-Projekt in
einer Exceldatei?
Dateigrösse von
Arbeitsmappen reduzieren
Microsoft
Knowledge Base-Artikel
Allgemeines über die Dateigrösse von Arbeitsmappen
So mancher Excel-Benutzer hat sich schon gefragt, wie gross die xls-Datei bei einer bestimmten Datenmenge in der Arbeitsmappe eigentlich sein müsste. Nicht selten kommt es nämlich vor, dass eine Exceldatei nach dem Speichern plötzlich erheblich grösser ist, obwohl man Daten gelöscht hat. Oder dass die Datei nach dem erneuten Öffnen und Speichern sogar kleiner ist als vorher, obwohl man weder eine Tabelle noch VBA-Programmcode geändert oder gelöscht hat. Oder aber die Exceldatei wird nach jeder Benutzung ständig grösser, trotz deaktiviertem Änderungsprotokoll.
Wie kann man also sicher gehen, dass eine Exceldatei eine "normale" Grösse besitzt? Wie findet man heraus, ob sich alte, nicht benötigte, unerwünschte oder gar fehlerhafte Daten in der Datei befinden? Wie wird man diese wieder los? Wie kann man ganz allgemein eine xls-Datei verkleinern, und zwar ohne dass benötigte Informationen gelöscht werden müssen, ohne dass die Arbeitsmappe komplett überarbeitet und auf Elemente wie Farben, Muster, Schriften, Bilder usw. verzichtet werden muss?
Die grundsätzliche Frage lautet: Inwiefern existiert eine Beziehung zwischen Datenmenge in einer Arbeitmappe und Grösse der Arbeitsmappendatei?. Diese Frage ist absolut berechtigt, da es durchaus vorkommen kann, dass beim Speichern einer Mappe, die sehr viele Daten enthält, die xls-Datei erstaunlich klein ist. In anderen Situationen dagegen ist eine xls-Datei ungewöhnlich gross, obwohl sich vergleichsweise nur wenig Daten in der Arbeitsmappe befinden.
Grundsätzlich ist es sehr schwierig, anhand der Datenmenge in einer Arbeitsmappe zuverlässige Aussagen zur Grösse der Exceldatei machen zu können. Der Grund liegt an der Vielzahl verschiedener Faktoren, die einen Einfluss auf die Dateigrösse besitzen.
Weitere Informationen über Dateiformate und Dateitypen finden Sie hier:
Weitere Informationen |
Diese Internetseite steht auch als Acrobat PDF-Dokument zur Verfügung. Hier erfahren Sie mehr darüber:
Das Arbeitsmappen-Dateiformat BIFF
Alle gängigen Versionen von Microsoft Excel, d.h. ab Excel 97 für Windows sowie ab Excel 98 für Macintosh verwenden für die meisten Dateitypen das Dateiformat namens BIFF8. BIFF ist die Abkürzung für Binary Interchange File Format. Die Ziffer 8 in BIFF8 steht für die BIFF-Version. Mit "die meisten Dateitypen" ist gemeint, dass die Excel-Dateitypen Arbeitsmappe (Dateinamenerweiterung xls), Vorlage (xlt), Add-In (xla) und Sicherungsdatei (xlk) dieses Format verwenden. Die Symbolleistendatei (xlb) beispielsweise verwendet ein anderes Format.
Ausführliche Informationen über das Dateiformat BIFF erhalten Sie hier:
Weitere Informationen |
Das Dateiformat einer Excel-Arbeitsmappe ist verglichen mit anderen Dateiformaten wie beispielsweise dem von Microsoft Word oder von PowerPoint zwar nicht sehr viel komplizierter, aber auch nicht gerade einfacher. Bedenken Sie unter anderem, dass eine Arbeitsmappe mehrere Arbeitsblätter enthält (bzw. enthalten kann), die ihrerseits die eigentlichen Daten enthalten, wobei es auch Daten wie die auf Arbeitsmappen-Ebene definierte Namen und auch Einstellungen gibt, die sich auf die gesamte Arbeitsmappe beziehen. Ein Word-Dokument dagegen stellt genau ein einzelnes Dokument dar; es existiert keine weitere Unterteilung wie es bei einer Arbeitsmappe bzw. einem Arbeitsblatt der Fall ist.
Wenn Sie das von Excel-Arbeitsmappen verwendete Dateiformat BIFF näher kennenlernen möchten, sollten Sie sich die nachfolgend aufgeführten Dokumentationen ansehen. Die Dokumente sind allerdings sehr technisch gehalten und erfordern gute Fachkenntnisse über Microsoft Excel und Arbeitsmappen.
| Dokument | Info |
| Microsoft Excel File Format (Excel Version 2, 3, 4, 5, 95, 97, 2000, 2002/XP, 2003) |
Autor: OpenOffice.org, Daniel Rentz |
| Microsoft Excel File Format (Excel Version 97, 2000, 2002) |
Autor: Unbekannt (Überarbeitung durch Philipp von Wartburg) |
Die obigen Dokumente können auf der Downloadseite heruntergeladen werden:
Maximale Grösse einer Arbeitsmappendatei
Diese Spezifikation ist einfach:
| Es existiert keine Limitation bezüglich der maximalen Dateigrösse einer Microsoft Excel-Arbeitsmappe (xls-Datei). |
Das Gleiche gilt nebenbei erwähnt auch für Mustervorlagen (xlt-Dateien) und Add-Ins (xla-Dateien) von Microsoft Excel.
Mit Microsoft Excel lassen sich problemlos Arbeitsmappen erstellen, die 50 MB und grösser sind. Ich kenne Excel-Benutzer, die mit über 100 MB grossen Arbeitsmappen arbeiten, wobei diese Mappen tatsächlich Zelldaten und Formeln enthalten, und nicht etwa Grafiken (Bilder) oder eingebettete Dokument-Objekte, die gewöhnlich zu sehr grossen Dateien führen. Die grösste jemals von mir persönlich angetroffene Arbeitsmappe war 227 MB gross - und konnte mit Excel 97 geöffnet und bearbeitet werden!
Solange keine andere Limitation überschritten wird, kann eine Exceldatei im Prinzip unbegrenzt gross sein, d.h. 1 GB oder auch 2 GB. Oftmals wird jedoch die Dateigrösse durch Limitationen begrenzt, welche mit "Durch den verfügbaren Speicher begrenzt" oder "Durch die verfügbaren Systemressourcen begrenzt" spezifiziert sind. Das bedeutet, dass die Datei im Prinzip noch grösser sein könnte, würden die in der Datei gespeicherten Informationen nicht eine bestimmte Grenze in Microsoft Excel überschreiten.
Ausführliche Informationen über Limitationen in Microsoft Excel, den Arbeitsspeicher und die Systemressourcen finden Sie hier:
Weitere Informationen |
Anmerkung zu Microsoft Word-Dateien
Die Datei eines Microsoft Word-Dokumentes kann maximal 32 MB Textinformationen
speichern. Wenn also ein Dokument keine eingefügten Bilder oder dergleichen besitzt,
liegt die maximale Grösse der doc-Datei bei 32 MB.
Mehr über die Limitationen in Microsoft Word erfahren Sie hier:
Weitere Informationen |
Einflussfaktoren bezüglich Dateigrösse
Art und Weise der Informationsspeicherung
Anders als in beispielsweise einer Microsoft Word-Dokumentdatei (Dateinamenerweiterung "doc") werden in einer Microsoft Excel-Arbeitsmappendatei bestimmte Daten, wie unter anderem mehrfach verwendete Zeichenfolgen (Strings), nur ein Mal in der Datei abgelegt. Angenommen Sie erstellen eine Jahreskalender-Mappe mit 365 Arbeitsblättern - jedes Blatt repräsentiert einen Kalendertag - und schreiben das Wort "Wochentag" in die Zelle A1 jedes Blattes, so wird der String "Wochentag" nur ein einziges Mal in der Datei gespeichert. Und zwar in die so genannte Shared String Table, der für gemeinsam benutzte (Zell-)Texte zuständige Bereich. Alle Zellen, in denen dieser Text enthalten ist, besitzen in der Datei lediglich eine Referenz auf die Zeichenfolge "Wochentag" in der Shared String Table. Der aus 9 Buchstaben bestehende String beansprucht in der Datei somit lediglich 9 Bytes. Würde jedes Vorkommen des Strings in der Datei gespeichert, so würden 3'285 Bytes Speicherplatz benötigt (9 x 365 = 3285).
Zudem führt die Verwendung eines dualen Dateiformates, beispielsweise "Microsoft Excel 97 & 5.0/95-Arbeitsmappe", verglichen mit einem 'einfachen' Dateiformat zu einer ungefähr doppelt so grossen Exceldatei, weil die Daten der Arbeitsmappe zweimal in der Datei abgelegt werden.
Typ der Zelldaten in der Arbeitsmappe
Mit "Typ der Zelldaten" ist gemeint, ob in einer Zelle eine Zahl, ein Text oder eine Formel steht.
Auch die Struktur der Arbeitsmappe beeinflusst die Dateigrösse. Eine Mappe mit nur einem Arbeitsblatt führt verständlicherweise zu einer kleineren Datei als eine Mappe mit mehreren Blättern. Dabei ist es nicht einmal relevant, ob die Zellen der Arbeitsblätter überhaupt Daten enthalten oder leer sind. Bei mehreren Blätter werden zwangsläufig auch mehrere 'Worksheet Records' in die Datei geschrieben, was zur Folge hat, dass die Datei grösser wird.
Desweiteren ist zu beachten, dass bei mehreren Arbeitsblättern Zellen untereinander über mehrere Blätter verknüpft sind (sogenannte Intersheet Links). Mit anderen Worten: Bei nur einem einzigen Blatt sind lediglich Zellbezüge auf Zellen innerhalb des gleichen Arbeitsblattes möglich, beispielsweise "=A1". Bei mehreren Blättern können die Bezüge blattübergreifend sein, beispielsweise "=Tabelle2!A1". Es versteht sich von selbst, dass derartige Zellbezüge mehr Speicherplatz benötigen.
Je aufwändiger die Darstellung, desto grösser die Arbeitsmappendatei. Mit dem Begriff "Darstellung" meine ich hier vor allem die Formatierung der Zellen (sogenannte Zellformate), also die Anzahl verschiedener Schriften, Farben, Füllmuster, Rahmen und dergleichen.
Äusserst wichtig ist nicht nur die Formatierung der Zelle selbst, sondern auch wie man bei der Formatierung vorgeht. Was damit genau gemeint ist, lässt sich an dieser Stelle leider nicht detailliert erläutern, da eine ausführliche Beschreibung viele Seiten lang würde. Ohne gross in die technischen Details gehen zu müssen, lässt sich dieser Aspekt an einem konkreten Beispiel vereinfacht verdeutlichen. Sie finden das Beispiel im Kapitel Auswirkungen von Spalten- und Zellen-Formatierungen.
Die in Microsoft Excel zur Verfügung stehenden Features für Zellen werden ebenfalls in der xls-Datei gespeichert. Es ist nachvollziehbar, dass die Dateigrösse zunimmt, je mehr man von diesen Features Gebrauch macht.
Zu diesen Features gehören (nach Ansicht des Autors):
- Bedingte Formatierungen
- Gültigkeitsprüfungen
- Namen
- Kommentare
- Hyperlinks
- Weitere
Weitere Faktoren besitzen eine Einfluss auf die
Dateigrösse:
- AutoFilter, Gliederungen, Gruppierungen, Pivottabellen, Szenarios, Web-Queries,
Ansichten, angebundene Symbolleisten, Formatvorlagen, Zahlenformate etc.
- Objekte (Diagramme, Bilder, eingebettete Objekte, Zeichnungsobjekte, AutoFormen,
Formular- und ActiveX-Steuerelemente etc.)
- Mappenfreigabe (persönliche Ansichten, Änderungsprotokoll etc.)
- VBA-Projekt (VBA-Programmcode, Benutzerformulare, ActiveX-Steuerelemente etc.)
Gerade der in einer Arbeitsmappe enthaltene VBA-Code besitzt einen wichtigen Einfluss. Was es damit auf sich hat, erfahren Sie im Beitrag "Wieso ist die Datei nach dem Kompilieren des VBA-Projektes zum Teil erheblich grösser?".
Objekte und ihr Einfluss auf die Dateigrösse
Die in einer Arbeitsmappe verwendeten Objekte besitzen einen direkten Einfluss auf die Grösse der Arbeitsmappendatei. Es ist nachvollziehbar, dass die Datei grösser wird, wenn beispielsweise 10'000 statt nur 2'000 Zellen mit Daten gefüllt werden, oder wenn 50 statt 10 Grafiken in ein Arbeitsblatt eingefügt wurden.
Die nachfolgende Tabelle zeigt ein paar Objekte und ihr Einfluss auf die Grösse einer Arbeitsmappendatei. Die Dateigrösse wurde anhand einer Microsoft Excel 97-Arbeitsmappe ermittelt. Die aufgeführten Angaben sollen einen Eindruck vermitteln, wie stark der Einfluss eines bestimmten Objektes auf die Dateigrösse ist.
| Objekt | Anzahl | Dateigrösse |
| Zellen mit Konstanten | 1'703'936 Zellen (A1:Z65536) | 12 MB |
| Zellen mit Konstanten | 3'407'872 Zellen (A1:AZ65536) | 22 MB |
| Zellen mit Konstanten | 5'111'808 Zellen (A1:BZ65536) | 32 MB |
| Zellen mit Konstanten | 6'815'744 Zellen (A1:CZ65536) | 42 MB |
| Leere mit AutoFormat formatierte Zellen | 1'703'936 Zellen (A1:Z65536) | 5.4 MB |
| Hyperlinks | 12'000 Hyperlinks | 640 KB |
| Kommentare | 10'000 Kommentare | 5 MB |
| AutoFormen | 1'000 AutoFormen | 130 KB |
| Schaltflächen (Formular-Symbolleiste) | 200 Schaltflächen | 30 KB |
| Schaltflächen (Steuerelement-Toolbox) | 200 Schaltflächen | 330 KB |
Auswirkungen von Spalten- und Zellen-Formatierungen
Vielleicht werden Sie beim Lesen des obigen Titels denken, dass es "Spalten- und Zeilen-Formatierungen" und nicht "Spalten- und Zellen-Formatierungen" heissen müsste. Nun, der Titel ist korrekt - es sind tatsächlich Zellen gemeint.
Das nachfolgend vorgestellte Beispiel soll zeigen, dass das Vorgehen bei der Formatierung von Zellen einen direkten und vor allem erheblichen Einfluss auf die Dateigrösse hat. Zum Durchspielen des Beispiels benötigen Sie höchstens eine Minute.
Verhalten der Dateigrösse
Praxis-Beispiel
Hinweis: Die im Beispiel angegebenen Dateigrössen beziehen sich auf eine mit Microsoft Excel 97 gespeicherte Mappe. Bei Microsoft Excel 2000 und 2002/XP müsste die Dateigrösse ungefähr gleich sein. Bei Microsoft Excel 2003 kann es sein, dass die Dateigrösse stark abweicht, da Excel 2003 eine Arbeitsmappe auf eine andere Art und Weise speichert wie die Vorgängerversionen.
Vorgehen 1: Alle Zellen einer Spalte formatieren
und dann speichern
1. Legen Sie in Microsoft Excel eine neue Arbeitsmappe an (die Anzahl Blätter in
der Mappe spielt keine Rolle)
2. Markieren Sie die gesamte Spalte A
3. Ändern Sie die Hintergrundfarbe der Zellen auf Gelb.
4. Speichern Sie die Arbeitsmappe.
Öffnen Sie das Eigenschaften-Dialogfenster (Menü Datei/Eigenschaften) und kontrollieren Sie die Dateigrösse. Diese ist mit ca. 13'824 Bytes angegeben.
Vorgehen 2: Ein Teil der Zellen einer Spalte
formatieren, danach restliche Zellen formatieren und dann speichern
1. Legen Sie in Microsoft Excel eine neue Arbeitsmappe an (die Anzahl Blätter in
der Mappe spielt keine Rolle)
2. Markieren Sie die Zellen A1:A65535 (d.h. eine Zelle weniger als die gesamte
Spalte A)
3. Ändern Sie die Hintergrundfarbe der Zellen auf Gelb.
4. Markieren Sie die noch nicht formatierte Zelle A65536
5. Ändern Sie die Hintergrundfarbe der Zelle auf Gelb.
6. Speichern Sie die Arbeitsmappe erneut
Öffnen Sie das Eigenschaften-Dialogfenster (Menü Datei/Eigenschaften) und kontrollieren Sie die Dateigrösse. Diese ist mit ca. 2'150'912 Bytes angegeben.
Ergebnisanalyse und Fazit
Wie Sie unschwer erkennen können, führt das zweite Vorgehen zu einer rund 156 mal
grösseren Datei als das erste Vorgehen! Obwohl beide Arbeitsmappe den exakt gleichen
Inhalt besitzen und tatsächlich zu 100 % identisch sind. Der einzige Unterschied ist,
dass die Informationen über die Formatierung der Zellen nicht auf gleiche Art und Weise
in der Datei abgelegt sind.
Wie man diese "aufgeblähte" Datei verkleinern kann, wird im nächsten Abschnitt vorgestellt.
Dateigrösse wieder reduzieren
Das Schliessen, erneute Öffnen und nochmalige Speichern der Arbeitsmappe führt nicht zum Erfolg. Das Löschen und Neuerstellen der gesamten Spalte A macht die Datei zwar kleiner, ist aber alles andere als eine effiziente Lösung, weil sämtliche Daten neu eingegeben werden und formatiert werden müssen. Auch das Entfernen und Neuzuweisen der Zellformatierungen ist aufwändig, da einzelne Zellen der Spalte A unterschiedlich formatiert sein könnten (z.B. verschiedene Schriftarten, Schriftgrössen etc.). Am schönsten wäre es doch, wenn man die Datei verkleinern kann, ohne dass Formatierungen entfernt, geändert bzw. neu erstellt werden müssen. Dieser Wunsch kann sogar erfüllt werden, weil es zum Glück einen Trick:
Markieren Sie zuerst die gesamte Spalte A und öffnen dann das Zellformat-Dialogfenster (u.a. mit Menübefehl Format/Zellen oder Strg+1). Wechseln Sie jetzt auf diejenige Registerseite, auf der sich die Formatierungs-Einstellung befindet, die sozusagen neu gesetzt werden muss. Im obigen Praxis-Beispiel wurden die Zellen mit der Hintergrundfarbe Gelb formatiert. Folglich muss die Registerseite "Muster" geöffnet werden, da sich auf dieser Seite die Zellenhintergrund-Einstellungen befinden. Die folgende Abbildung zeigt diese Registerseite.

Abbildung: Zellen-Dialogfenster mit Registerseite
"Muster"
Sie werden erkennen, dass das Kästchen für die gelbe Hintergrundfarbe bereits aktiviert ist. Klicken Sie jetzt mit der Maus auf dieses Kästchen mit der Farbe Gelb (also obwohl es bereits aktiviert ist)! Schliessen Sie nun das Fenster mit OK und speichern Sie die Arbeitsmappe. Wenn Sie jetzt die Dateigrösse im Eigenschaften-Dialog (Menü Datei/Eigenschaften) nachprüfen, werden Sie sehen, dass die Datei wirklich dramatisch kleiner wurde.
Es ist durchaus möglich, dass mehrere Spalten zu der zu grossen Datei beigetragen haben. Erst wenn die "schuldigen" Formatierungs-Einstellungen von all diesen Spalten neu zugewiesen wurden, reduziert sich die Dateigrösse.
Es ist wichtig, dass Sie genau die Formatierungs-Einstellung neu zuweisen, welche quasi die zu grosse Datei verursacht hat. Wenn beispielsweise die Hintergrundfarbe Gelb "schuld" ist, und Sie klicken zum Beispiel auf der Registerseite "Schrift" erneut auf die verwendete Schriftart, so wird die Datei dadurch nicht kleiner, weil sich die Hintergrundfarbe auf einer anderen Registerseite als die Schriftart befindet.
Wie funktioniert der Trick?
Durch das Anklicken einer Einstellung wird für die betroffene Registerseite
programmintern ein Mutations-Flag gesetzt. Beim Schliessen des Dialogfensters mittels OK
überprüft Excel, welche Registerseite Änderungen erfahren hat (das erneute Anklicken
einer Einstellung gilt als Änderung). Beim Speichern der Mappe werden dann alle
Formatierungs-Einstellungen neu geschrieben, die zu dieser Registerseite gehören. Da die
geänderte Einstellung nun für die gesamte Spalte gilt, wird die Formatierungsinformation
nicht pro Zelle sondern für die Spalte als Ganzes gespeichert.
Neuzuweisung anhand von VBA-Code durchführen
Die Neuzuweisung der Hintergrundfarbe können Sie auch mit VBA durchführen. Dazu
genügt eine einzige Codezeile (am Beispiel der Spalte A):
Range("A:A").Interior.ColorIndex = Range("A:A").Interior.ColorIndex
oder
Columns(1).Interior.ColorIndex = Columns(1).Interior.ColorIndex
Weisen Sie einfach die bisherige Farbe erneut der Spalte zu. Der Vorteil dieser VBA-Lösung ist, dass Sie sich nicht um den aktuell verwendeten Farbindex kümmern müssen, sprich der Farbindex nicht bekannt sein muss.
Wichtige Hinweise zum VBA-Code
Wenn Sie die Neuformatierung der Spalten wie oben gezeigt mittels VBA-Code
durchführen, müssen Sie unbedingt die nachfolgenden Punkte beachten.
» Die Eigenschaft Color darf nicht neu zugewiesen werden, sondern nur ColorIndex. Verwenden Sie daher keine dieser Anweisungen:
Columns(x).Font.Color = Columns(x).Font.Color
Columns(x).Interior.Color = Columns(x).Interior.Color
Columns(x).Interior.PatternColor = Columns(x).Interior.PatternColor
Columns(x).Borders(y).Color = Columns(x).Borders(y).Color
» Mit der VBA-Funktion IsNull kann bzw. muss geprüft werden, ob die betroffene Eigenschaft bei allen Zellen einer Spalte identisch eingestellt ist. Nur bei einem gleichen Eigenschaftswert aller Zellen darf die Neuzuweisung erfolgen. Anderenfalls würden unterschiedlich formatierte Zellen umformatiert, was ja nicht passieren darf. Hier ein Beispiel:
If Not IsNull(Columns(x).NumberFormatLocal)
Then
Columns(x).NumberFormatLocal = Columns(x).NumberFormatLocal
End If
» Die Eigenschaft IndentLevel darf nur dann neu zugewiesen werden, wenn die horizontale Ausrichtung auf linksbündig gestellt ist (HorizontalAlignment).
If Not IsNull(Columns(x).IndentLevel)
Then
If Columns(x).HorizontalAlignment = -4131 Then
'-4131 = linksbündig
Columns(x).IndentLevel = Columns(x).IndentLevel
End If
End If
» Die Zellrahmenlinien für Oben, Unten, Links, Rechts, Diagonal aufwärts und Diagonal abwärts müssen ebenfalls neu zugewiesen werden. Dazu verwendet man am besten eine For-Next-Schleife. Dieser Schleifentyp ist besonders gut geeignet, weil die benötigten Konstanten xlDiagonalDown, xlEdgeBottom, xlEdgeLeft etc. (Konstantenauflistung XlBordersIndex) mehr oder weniger zufälligerweise die Werte 5 bis 10 besitzen. Die Neuformatierung der Rahmenlinien sieht dann so aus:
With Columns(x)
For intIndex = 5 To 10
If Not IsNull(.Borders(intIndex).LineStyle) Then
.Borders(intBorderIndex).LineStyle =
.Borders(intBorderIndex).LineStyle
End If
If Not IsNull(.Borders(intIndex).Weight) Then
.Borders(xlEdgeBottom).Weight =
.Borders(xlEdgeBottom).Weight
End If
If Not IsNull(.Borders(intIndex).ColorIndex) Then
.Borders(xlEdgeBottom).ColorIndex =
.Borders(xlEdgeBottom).ColorIndex
End If
Next intIndex
End With
Die beiden inneren Rahmenlinien (xlInsideHorizontal und xlInsideVertical) dürfen nicht neu zugewiesen werden, da eine einzelne Zelle keine dieser Rahmenlinien besitzen kann.
» Die Eigenschaft Locked kann grundsätzlich neu zugewiesen werden. In bestimmten, eher seltenen Situationen kann jedoch ein Laufzeitfehler auftreten, obwohl das erneute Setzen des Eigenschaftswertes im Programmcode korrekt durchgeführt wird. Aus diesem Grund muss der Laufzeitfehler mittels On Error Resume Next abgefangen werden. Das Auswerten des aufgetretenen Fehlers ist nicht nötig.
On Error Resume Next
If Not IsNull(Columns(x).Locked) Then
Columns(x).Locked = Columns(x).Locked
If Err.Number <> 0 Then
Err.Clear
End If
End If
Neuzuweisung mit Hilfe eines Tools durchführen
Es gibt ein Add-In für Microsoft Excel, mit dem man die Spaltenformatierungen von
Tabellenblättern wie oben beschrieben auf Knopfdruck automatisch optimieren kann. Das
Add-In heisst ColumnFormat Optimizer und ist ein Werkzeug aus der CEFA-Toolbox,
der Werkzeugsammlung für Bearbeitung, Analyse und Optimierung von Zellformatierungen.
Die Produkt-Webseite der CEFA-Toolbox finden Sie hier:
CEFA-Toolbox
Informationen über den ColumnFormat Optimizer und eine
Downloadmöglichkeit finden Sie hier:
ColumnFormat
Optimizer
Das Add-In kann auch auf Downloadseite von xlam heruntergeladen werden:
Allgemeines über duale Dateiformate
Microsoft Excel bietet die Möglichkeit, Arbeitsmappen mit einem dualen Dateiformat zu speichern. Duale Dateiformate werden oft auch "Kombinierte Dateiformate" oder "Hybride Dateiformate", und in englischer Sprache "Dual Stream File Formats" genannt.
In jeder Excelversion gibt es ein spezielles duales Dateiformat:
| Excelversion | Duales Dateiformat |
| Excel 2003: | Microsoft Excel 97-2003 & 5.0/95-Arbeitsmappe |
| Excel 2002: | Microsoft Excel 97-2002 & 5.0/95-Arbeitsmappe |
| Excel 2000: | Microsoft Excel 97-2000 & 5.0/95-Arbeitsmappe |
| Excel 97: | Microsoft Excel 97 & 5.0/95-Arbeitsmappe |
Anmerkung des Autors: Vermutlich gibt es auch in Microsoft Excel für Macintosh duale Dateiformate. Diese sind mir jedoch nicht bekannt.
Hinweis
Das Dateiformat mit der Bezeichnung "Microsoft Excel 5.0/95-Arbeitsmappe"
ist kein duales Dateiformat.
Das Excel-Dateiformat wird seit der ersten Excel-Version für Windows "BIFF" genannt (BIFF steht für "Binary Interchange File Format"). Die erste Excel-Version für Windows war Excel 2.0 und erschien im Jahre 1987. Bis und mit Excel Version 4.0 speicherte BIFF (BIFF2/BIFF3/BIFF4) die Daten in einem Stream-Format (d.h. alle Records sind sequentiell angeordnet), ab Version 5.0 speichert BIFF (BIFF5/BIFF7/BIFF8) alle Daten im OLE2 Storage Format (auch als "Structured Storage" bezeichnet). Das OLE2 Storage Format - eine Datei, die dieses Format verwendet, wird "OLE2 Compound File" genannt - enthält mehrere Streams für die verschiedenen Typen von Daten.
| Stream Name | Inhalt |
| Book | BIFF5/BIFF7 workbook stream |
| Workbook | BIFF8 workbook stream |
| SummaryInformation | Document settings |
| DocumentSummaryInformation | Document settings |
| User Names | User names in shared workbooks |
| Revision Log | Change tracking log stream |
Ausführliche Informationen über das Dateiformat BIFF erhalten in Kapitel "Das Arbeitsmappen-Dateiformat BIFF" sowie hier:
Weitere Informationen |
Zum Lesen und Schreiben von Dateien wird in Microsoft Excel generell die Back Seeking-Technik benutzt. So richtig zum Einsatz kommt die Technik unter anderem beim Öffnen und Speichern von Arbeitsmappen mit einem dualen Dateiformat, beispielsweise dem Format "Microsoft Excel 97-2000 & 5.0/95-Arbeitsmappe", welches in Microsoft Excel 2000 zur Verfügung steht.
Microsoft beschreibt die Back Seeking-Technik folgendermassen (Auszug aus einer Dokumentation von Microsoft):
| The method that is
used when Microsoft Excel reads and writes files Microsoft Excel uses a technique called "back seeking" when reading and writing files. "Back seeking" means that when Microsoft Excel opens a file and reads from it, it does not necessarily read or write in a sequential manner. It may start at the first record in the file, jump to the fifteenth record, go back to the third record, and so on. This "jumping back" part may be what is causing the intermittent corruption of files especially when you are saving to a floppy disk drive. Microsoft Excel is one of a few programs that uses this technique when reading and writing files. Often these disk problems appear to exist only in Microsoft Excel. Having the floppy disk drive heads realigned should correct this problem. |
Detaillierte Informationen über die Back Seeking-Technik finden Sie hier:
Weitere Informationen
|
Wenn Sie beispielsweise in Microsoft Excel 2000 eine Mappe mit dem dualen Dateiformat speichern, so passiert folgendes:
1. Die Excel 97/2000-Sektion der Arbeitsmappe wird geschrieben.
2. Die Excel 5.0/95-Sektion der Arbeitsmappe wird mit der Excel 97/2000-Sektion synchronisiert, sodass beide Sektionen die gleichen Daten enthalten.
3. Die Excel 5.0/95-Sektion der Arbeitsmappe wird geschrieben.
4. Die Arbeitsmappe wird gespeichert.
Wenn eine Mappe in Excel 2000 geöffnet wird, so wird nur die Excel 97/2000-Sektion eingelesen. Wenn Sie Änderungen in der Arbeitsmappe vornehmen und dann die Datei speichern, werden alle Änderungen der Excel 97/2000-Sektion in die Excel 5.0/95-Sektion kopiert und anschliessend die Mappe gespeichert.
Grösse einer Datei mit dualem Format
Aufgrund der Art und Weise, wie die Informationen in einer Datei mit dualem Format abgelegt sind, ist eine solche Datei durchschnittlich doppelt so gross wie eine Datei, die das gewöhnliche Excel-Dateiformat besitzt. Da jedoch Informationen wie Dokument-Eigenschaften und das VBA-Projekt nur ein einziges Mal in der Datei gespeichert ist, müsste die Grösse der dual formatierten Datei etwas weniger als das Doppelte ausmachen. Allerdings stimmt diese Rechnung nicht immer, wie die beiden folgenden Beispiele zeigen:Beispiel 1
| Dateigrösse bei einfachem Dateiformat: | 3625 Bytes |
| Dateigrösse bei einfachem Dateiformat × 2: | 7250 Bytes |
| Dateigrösse bei dualem Dateiformat: | 5285 Bytes |
Die Dateigrösse bei dualem Format beträgt weniger als die doppelte Dateigrösse bei gewöhnlichem Format (5285 Bytes zu 7250 Bytes).
Beispiel 2| Dateigrösse bei einfachem Dateiformat: | 1379 Bytes |
| Dateigrösse bei einfachem Dateiformat × 2: | 2758 Bytes |
| Dateigrösse bei dualem Dateiformat: | 2964 Bytes |
Die Dateigrösse bei dualem Format beträgt mehr als die doppelte Dateigrösse bei gewöhnlichem Format (2964 Bytes zu 2758 Bytes).
Nachteile des dualen Dateiformats
Das duale Dateiformat besitzt meiner Meinung nach eine nicht zu unterschätzende Schwachstelle bezüglich Schutz von VBA-Projekten. Wenn Sie eine Arbeitsmappe, die VBA-Programmcode enthält, mit dem dualen Dateiformat "Microsoft Excel 97 & 5.0/95-Arbeitsmappe" speichern, kann der Programmcode in Microsoft Excel 95 und Microsoft Excel 5.0 angezeigt werden, auch wenn Sie das VBA-Projekt mittels Kennwort geschützt haben. Der Grund liegt am fehlenden Kennwortschutz für VBA-Projekte in diesen beiden älteren Versionen 5.0 und 95.
Weitere Informationen über duale Dateiformate finden Sie hier:
Weitere Informationen |
Zusammenhang zwischen Dateigrösse und Arbeitsspeicher
Es gibt eine Faustregel, die besagt, dass der von einer Arbeitsmappe benötigte Arbeitsspeicher ungefähr 1 1/4 Mal (also 125 %) der Dateigrösse einer xls-Datei entspricht. Eine 4 MB grosse, in Microsoft Excel geöffnete Arbeitsmappendatei beansprucht somit ca. 5 MB Arbeitsspeicher. Diese Faustregel ist auf gewöhnliche, durchschnittliche Arbeitsmappen anwendbar. Mit 'gewöhnlich' bzw. 'durchschnittlich' ist gemeint, dass die Mappe einen üblichen Inhalt besitzt, also ein paar Arbeitsblätter, Zellen mit Daten, ein paar Formeln und vielleicht noch das eine oder andere Diagramm oder Bild. Bei 'extremen' Inhalten dagegen, wie zum Beispiel einer Mappe mit mehreren Tausend eingefügten Hyperlinks, stimmt die Faustregel nicht. Dass der Bedarf an Arbeitsspeicher weniger gross ist als die Mappendatei, kommt in der Praxis eigentlich nicht vor. Das wäre schon eine seltene Ausnahme.
Hier drei Beispiele von Arbeitsmappen, auf die man die Faustregel nicht anwenden kann.
Beispiel 1:
Eine Arbeitsmappe, die 12'000 eingefügte Hyperlinks enthält, ist
lediglich ca. 600 KB gross. Der Speicherbedarf dieser Mappe jedoch liegt bei rund 17 MB,
was somit nicht 1.25 mal sondern 28 mal der Grösse der Exceldatei entspricht.
Beispiel 2:
Wenn eine Arbeitsmappe viele Formeln mit Zellbezügen auf andere
Tabellenblätter enthält, benötigt die in Microsoft Excel geöffnete Mappe sehr viel
Arbeitsspeicher. Es kann durchaus vorkommen, dass eine 3 MB grosse Datei den gesamten für
Excel zur Verfügung stehenden Arbeitsspeicher beansprucht. Unter Umständen kann die
Datei gar nicht mehr geöffnet werden, weil nicht genügend Arbeitsspeicher verfügbar
ist.
Beispiel 3:
Wenn eine Arbeitsmappe ausschliesslich Konstanten enthält, d.h. Zellen
mit Zahlen (aber keine Formeln), so wird nur wenig Arbeitsspeicher beansprucht. Eine 45 MB
grosse, mit Microsoft Excel 97 erstellte Arbeitsmappendatei enthält rund 7 Millionen
Zellen und lässt sich in Excel öffnen und bearbeiten.
Ausführliche Informationen über den Arbeitsspeicher von Microsoft Excel finden Sie hier:
Weitere Informationen |
Häufig gestellte Fragen bezüglich Dateigrösse
In diesem Kapitel werden Antworten auf äusserst interessante und häufig gestellte Fragen zum Thema "Grösse einer Arbeitsmappendatei" vorgestellt.
Frage 1: Warum ist
die Datei nach dem Löschen von Zellformatierungen grösser?
Frage 2: Wieso
wird die Datei durch das Ein-/Ausblenden von Zeilen um ein Vielfaches grösser?
Frage 3: Warum
ist die Datei nach dem Speichern, Schliessen und erneuten Öffnen plötzlich kleiner?
Frage 4: Wieso
ist die Datei nach dem Kompilieren des VBA-Projektes zum Teil erheblich grösser?
Frage 5: Werden in
einer Exceldatei Informationen über Undo-Schritte gespeichert?
Frage 6: Gibt
es in Excel eine Art Komprimierungsfunktion wie in Microsoft Access?
Frage 7: Wie kann man eine
Exceldatei schnell und einfach verkleinern?
Frage 8: Gibt es
nützliche Tools zum Verkleinern von Arbeitsmappendateien?
Frage 9: Wieso ändert
sich die Dateigrösse je nach aktiviertem Arbeitsblatt?
Frage 10: Warum
wird die Datei durch Ausschalten der Zeilen-/Spaltenköpfe und Gitternetzlinien viel
kleiner?
Frage 11: Darf
man sämtliche Blätter in eine neue Mappe kopieren, damit die Datei kleiner wird?
Frage 12: Welche Rolle spielt
das Grafikformat eines eingefügten Bildes?
Frage 13: Wieso
ändert sich die Dateigrösse beim Speichern der Mappe in einem anderen Ordner?
Frage 14: Wie
kann man eine als XML Spreadsheet-Datei gespeicherte Mappe verkleinern?
Frage 17: Wieso
ist die Mappe nach dem Speichern plötzlich grösser, ohne dass Änderungen vorgenommen
wurden?
Frage 18: Wieso
nimmt die Dateigrösse durch das erstmalige Ausdrucken von Blättern zu?
Frage 19: Wie stark
beeinflusst die Mappenfreigabe die Grösse einer Exceldatei?
Frage 20: Was sollte man bei
der Makroarbeitsmappe Personl.xls beachten?
Frage 21: Wie wichtig ist die
Dateigrösse eines Excel Add-Ins (xla-Datei)?
Frage 22: Warum
ist die Datei mit Programmcode im Workbook_Open-Ereignis nach dem Speichern grösser?
Frage 23: Wie gross ist das VBA-Projekt in
einer Exceldatei?
Frage 1: Warum ist die Datei nach dem Löschen von Zellformatierungen grösser?
![]()
Eine absolut berechtigte Frage. Eigentlich müsste die Exceldatei durch das Löschen von Zellformatierungen kleiner werden, weil weniger Formatierungsinformationen in der Datei gespeichert werden. In bestimmten Situationen ist es jedoch tatsächlich so, dass die Datei grösser wird - zum Teil sogar beträchtlich. Wieso das der Fall sein kann, möchte ich Schritt für Schritt an einem kleinen Beispiel demonstrieren. Das gesamte Durchspielen des Beispiels dauert kaum länger als eine Minute.
Ausgangslage:
Legen Sie zuerst in Microsoft Excel eine neue, leere Arbeitsmappe an. Die
Anzahl Blätter spielt keine Rolle.
Vorgehen:
Führen Sie nun die nachstehenden vier Blöcke mit den jeweils zwei
Schritten durch. Die Dateigrösse können Sie im Excel-Dialog
"Datei-Eigenschaften" (Menü Datei/Eigenschaften) oder im
Windows Explorer nachschauen.
Schritt 1.1: Spalte A markieren und Zellhintergrundfarbe
Gelb zuweisen
Schritt 1.2: Arbeitsmappe speichern und Dateigrösse kontrollieren
Schritt 2.1: Zellen A1:A500 markieren und Menübefehl Bearbeiten/Löschen/Formate
ausführen
Schritt 2.2: Arbeitsmappe speichern und Dateigrösse kontrollieren
Schritt 3.1: Zellen A501:A5000 markieren und Menübefehl Bearbeiten/Löschen/Formate
ausführen
Schritt 3.2: Arbeitsmappe speichern und Dateigrösse kontrollieren
Schritt 4.1: Zellen A5001:A65535 markieren (nicht A65536!)
und Menübefehl Bearbeiten/Löschen/Formate ausführen
Schritt 4.2: Arbeitsmappe speichern und Dateigrösse kontrollieren
Frage 2: Wieso wird die Datei durch das Ein-/Ausblenden von Zeilen um ein Vielfaches grösser?
![]()
Diese Frage kann leider nicht abschliessend beantwortet werden. Laut Microsoft kann es vorkommen, dass eine Arbeitsmappendatei nach dem Ein- oder Ausblenden von Zeilen oder Spalten erheblich grösser ist. Leider hat Microsoft den Grund dafür nie veröffentlicht. Auch ich selbst konnte mir dieses Phänomen lange Zeit nicht erklären, konnte die Ursache dann aber doch noch herausfinden.
Am besten lässt es sich anhand eines kleinen praktischen Beispiels erklären. Führen Sie folgende Schritte durch:
Legen Sie eine neue, leere Arbeitsmappe in Microsoft Excel an (Excelversion und Blattanzahl spielt keine Rolle).
Markieren Sie die Spalte
A und ändern irgend eine Zellformatierung (stellen Sie zum Beispiel die Hintergrundfarbe
auf Gelb, indem Sie auf die Symbolleisten-Schaltfläche
klicken).
Selektieren Sie die Zelle A1 und speichern dann die Arbeitsmappe.
Öffnen Sie das Eigenschaften-Dialogfenster (Menübefehl Datei/Eigenschaften) und merken Sie sich die Dateigrösse, die mit etwa 13.5 KB angegeben ist (bei einer Excel 97-Mappe mit einem Arbeitsblatt).
Markieren Sie die Zeilen 55'537 bis 65'536 (am einfachsten durch Eingabe von '55537:65536' im Namenfeld) und blenden Sie diese aus (am einfachsten mit der Tastenkombination Strg+9).
Selektieren Sie die Zelle A1 und speichern die Arbeitsmappe erneut.
Öffnen Sie wieder das Eigenschaften-Dialogfenster und kontrollieren die Dateigrösse. Diese beträgt nun ca. 232 KB!
Sie sehen also, dass durch das Ausblenden von 10'000 Zeilen die Excelatei über 17 mal grösser wurde.
Frage 3: Warum ist die Datei nach dem Speichern, Schliessen und erneuten Öffnen plötzlich kleiner?
![]()
Der Grund für die kleinere Datei liegt an einer Excel-internen Programmroutine, die ausschliesslich beim Öffnen einer Mappe ausgeführt wird. Diese Routine konvertiert gleichartige Zellformeln in sogenannte 'Shared Formulas'. Wenn Sie eine Formel in einen Zellbereich einfüllen, so kann diese Formel von den Zellen des Zellbereiches quasi gemeinsam verwendet werden. Excel legt die Formel intern nur ein einziges Mal und nicht für jede Zelle ab. Alle Zellen, die diese Formel enthalten, referenzieren lediglich auf die Formel. Beim Eintragen der Formel jedoch wird sie zunächst pro Zelle abgelegt und gespeichert. Die Konvertierung in eine gemeinsam benutzte Formel erfolgt erst beim erneuten Öffnen der Mappe. Da eine Shared Formula wie erwähnt nur ein Mal abgelegt ist, wird die Exceldatei dadurch kleiner.
Hier ein kleines exemplarisches Beispiel:
1. Formel in einen 100 Zellen grossen Zellbereich eintragen
2. Mappe speichern (Formel wird pro Zelle, d.h. 100 mal gespeichert)
3. Mappe schliessen
4. Mappe neu öffnen (Formel wird in eine Shared Formula konvertiert)
5. Mappe speichern (Formel wird 1 mal gespeichert)
MS Excel 2.x/3.x/4.x Worksheets Take a Long Time to
Open/Save
http://support.microsoft.com/?scid=kb;en-us;104310
Frage 4: Wieso ist die Datei nach dem Kompilieren des VBA-Projektes zum Teil erheblich grösser?
Beim Kompilieren wird der Source Code des VBA-Programmes (Makros, Prozeduren, Funktionen, Variablen-Deklarationen etc.) in sogenannten P-Code (Pseudo-Code) übersetzt, d.h. Code, welcher quasi sofort ausgeführt werden kann. Dieser P-Code wird, wie auch die Arbeitsmappe, in einem bestimmten Bereich der xls-Datei gespeichert. Dadurch wird die Exceldatei grösser. Nach meinen Erfahrungen ist der P-Code in etwa so gross wie der Source Code. Das heisst, dass 100 KB Source Code beim Kompilieren ca. 100 KB P-Code erzeugt.
In Ihrem Fall beträgt der Grössenunterschied 150 KB (=150 KB kompilierter Code). Das Laden einer 120 KB Exceldatei dauert verständlicherweise weniger lange als das Laden einer 270 KB Datei. Die Dauer zum Kompilieren des VBA-Codes ist jedoch grösser als die Zeitersparnis, die beim Laden der kleineren Datei entsteht. Das bedeutet, dass es aus Sicht Geschwindigkeit besser ist, den Code vor dem Speichern zu kompilieren.
Wenn man eine Mappe öffnet, die unkompilierten VBA-Code enthält, wird der VBA-Code unmittelbar vor der Ausführung eines Makros kompiliert (z.B. Menübefehl Extras/Makros/Makro, Schaltfläche "Ausführen"). Das erstmalige Ausführen eines Makros ist somit langsam. Wenn Sie nun die Mappe speichern, wird der infolge der Makroausführung kompilierte Code in die xls-Datei gespeichert. Die Datei wird zwangsweise grösser, dafür sind die Makros beim nächsten Öffnen der Mappe schneller, da die Kompilierung wegfällt.
Man kann nicht verhindern, dass der P-Code beim Mappe speichern ebenfalls gespeichert wird (es gibt keine Option wie "Kompilierter VBA-Code nicht speichern"). Die Kompilierung kann auch nicht rückgängig gemacht werden. Es existiert aber die Möglichkeit, das VBA-Projekt zu "säubern", wodurch unter anderem der kompilierte Code entfernt wird. Dazu benötigt man ein spezielles Tool, beispielsweise den Code Cleaner oder vbClear. Mit diesen Tools würde die Mappe wieder ungefähr die ursprüngliche Dateigrösse erhalten. Beide Programme sind Freeware und können auf der Downloadseite heruntergeladen werden:
Bei Add-Ins sollte man den VBA-Code unbedingt vor dem Speichern des Add-Ins kompilieren. Der Code wird zwar ebenfalls bei der ersten Ausführung eines Makros kompiliert. Weil aber beim Beenden von Excel ein Add-In nie gespeichert wird, kann auch der kompilierte Code nicht in die xla-Datei gespeichert werden. Das heisst, dass die im Add-In abgelegten Makro-Prozeduren/-Funktionen sozusagen "bis in alle Ewigkeit" langsam sind.
Durch die vollständige Kompilierung des VBA-Codes werden auch verschiedene Fehler aufgedeckt, die nur der Kompiler erkennt - unter anderem nicht existierende Datentypen (z.B. "Dim MeineVariable As FehlerhafterDatentyp"). Wenn sich eine derartige fehlerhafte Variablen-Deklaration z.B. im Auto_Open-Makro befindet und nicht korrigiert wird, erscheint beim nächsten Öffnen der Datei die Fehlermeldung "Fehler beim Kompilieren: Benutzerdefinierter Typ nicht definiert". Ist das VBA-Projekt mittels Kennwort geschützt, erscheint die Fehlermeldung "Kompilierungsfehler in verborgenem Modul: DieseArbeitsmappe".
Solange im VBA-Editor der Befehl "Kompilieren von <VBAProject>" (Menü "Debuggen") nicht gesperrt ist, existiert im Projekt unkompilierter Programmcode.
Wie gross ein VBA-Projekt in Bytes ist, kann man mit dem Tool Code Documentor herausfinden. Dieses Programm ist Freeware und kann auf der Downloadseite heruntergeladen werden:
Fazit und Empfehlung
Sowohl aus Sicht Geschwindigkeit als auch aus Sicht Fehlerfreiheit ist es auf jeden
Fall zu empfehlen, den VBA-Code vor dem Speichern der Datei zu kompilieren.
Frage 5: Werden in einer Exceldatei Informationen über Undo-Schritte gespeichert?
![]()
Die Antwort lautet ganz klar "Nein". Im Gegensatz zu beispielsweise Microsoft Word werden in einer Microsoft Excel-Arbeitsmappendatei generell keine Undo-Informationen (Rückgängig-Schritte bzw. -Befehle) gespeichert. Beim Speichern einer Arbeitsmappe werden die in der Rückgängig-Liste stehenden Befehle gelöscht und der Undo-Speicher dieser Mappe geleert.
Detaillierte Informationen über den Undo-Speicher erhalten Sie hier:
Weitere Informationen |
Frage 6: Gibt es in Excel eine Art Komprimierungsfunktion ähnlich wie in Microsoft Access?
![]()
Nein. Eine derartige Funktionalität gibt es in Microsoft Excel nicht. In einer Exceldatei werden immer sämtliche Daten der Arbeitsmappe (beziehungsweise der Vorlage oder des Add-Ins) gespeichert. Wenn man beispielsweise in einer Tabelle eine Zeile löscht, so wird diese Zeile beim nächsten Speichern nicht mehr in die Exceldatei geschrieben. Die Daten der gelöschten Zeile sind also endgültig gelöscht.
Bei einer Microsoft Access-Datenbank sieht es anders aus. Wird dort in einer Tabelle ein Datensatz gelöscht, so wird er lediglich intern als gelöscht markiert (logisch gelöscht). Er existiert jedoch nach wie vor - aber wird nicht mehr angezeigt. Aus diesem Grund wird die Datenbankdatei (Dateinamenerweiterung "mdb") durch das Löschen von Datensätzen nicht kleiner. Die Verkleinerung findet erst statt, indem man die Komprimierungsfunktion aufruft. Dadurch werden alle als gelöscht markierten Daten physisch aus der Datenbank entfernt.
Frage 7: Wie kann man eine Exceldatei schnell und einfach verkleinern?
Eine allgemeingültige, universelle Möglichkeit gibt es nicht. Es kommt immer darauf an, was die Arbeitsmappe enthält (Inhalt) und wie ihr Inhalt aussieht (Darstellung/Struktur).
Eine umfangreiche Liste mit vielen Möglichkeiten finden Sie auf der Seite Dateigrösse von Arbeitsmappen reduzieren.
Frage 8: Gibt es nützliche Tools zum Verkleinern von Arbeitsmappendateien?
Tatsächlich sind derartige Programme ziemlich rar. Es gibt zwar ein paar Tools, die eine Arbeitsmappendatei kleiner machen können. Ein Tool jedoch, mit dem man sozusagen auf Knopfdruck eine Exceldatei verkleinern kann, ist mir nicht bekannt.
- Code Cleaner / vbClear
- UsedRange Optimizer
- ColumnFormat Optimizer
- Workbook Font Counter
- Cell Format Counter
Frage 9: Wieso ändert sich die Dateigrösse je nach aktiviertem Arbeitsblatt?
Es ist ohne weiteres möglich, dass sich die Dateigrösse verändert, je nachdem welches Arbeitsblatt beim Speichern gerade aktiv war.
Der Inhalt des aktiven Arbeitsblattes ist ausschlaggebend.
Erfahrungsgemäss tritt dieses Phänomen auf, wenn die Option "Vorschaugrafik speichern" eingeschaltet ist (Dialogfeld "Eigenschaften von Datei <x>").
Es ist tatsächlich so, dass durch das Deaktivieren der Optionen "Zeilen- und Spaltenköpfe" sowie "Gitternetzlinien" (Dialogfenster "Optionen", Registerseite "Ansicht") die Arbeitsmappendatei nach der nächsten Speicherung einiges kleiner sein kann. Eine Grössenreduktion um 20 KB ist keine Seltenheit. Die Reduktion verhält sich dabei nicht-proportional zur Dateigrösse. Das bedeutet, dass eine 80 KB-Datei neu 60 KB gross ist (=25 % kleiner). Eine 1 MB-Datei ist neu 980 KB gross (=2 % kleiner).
Der Verursacher dieses Phänomens ist das Feature "Vorschaugrafik". Die Vorschaugrafik wird im Dialogfenster "Eigenschaften" (Menü Datei/Eigenschaften) ein- und ausgeschaltet. Bei eingeschalteter Option generiert Microsoft Excel beim Speichern der Arbeitsmappe eine kleine Grafik. Diese zeigt immer einen Ausschnitt des linken oberen Blattbereiches des aktiven Arbeitsblattes. Vor dem Speichern der Grafik in die Exceldatei findet eine Komprimierung statt. Je "einfacher" die Abbildung ist, desto weniger Bytes benötigt die Grafik. Zum Beispiel können grosse weisse Flächen sehr gut komprimiert werden. Bei aktivierter Anzeige von Gitternetzlinien werden diese Flächen (sprich leere Zellen) jedoch durch graue Linien unterbrochen, wodurch weniger stark komprimiert werden kann. Bei den Zeilen- und Spaltenköpfen verhält es sich identisch. Folglich erhält man durch Deaktivieren dieser beiden Anzeigeoptionen eine kleinere Datei.
Frage 11: Darf man sämtliche Blätter in eine neue Mappe kopieren, damit die Datei kleiner wird?
Ein häufig verwendetes Verfahren zum Verkleinern einer Arbeitsmappendatei stellt das Kopieren aller Arbeitsblätter in eine neue, leere Arbeitsmappe dar. Es kann wohlgemerkt tatsächlich zum erhofften Ergebnis, sprich einer kleineren Datei, führen. Dennoch sollte man dieses Verfahren nicht benutzen, da es zu ernsthaften Problemen führen kann.
Oftmals wird die Arbeitsmappendatei tatsächlich kleiner, vor allem wenn die Mappe ein VBA-Projekt enthält. Die neue Datei ist aber nicht kleiner, weil fehlerhafte oder irrtümlich liegengebliebene Daten entfernt werden oder Daten reorganisiert oder optimiert werden. Die Reduktion der Dateigrösse ist genau genommen lediglich ein Nebeneffekt. Tatsächlich gehen beim Kopieren der Blätter sehr viele Dinge verloren, weil man sie gewöhnlich vergisst in die andere Mappe zu übernehmen bzw. in der neuen Mappe zu erstellen.
Hier ein paar Beispiele:
- VBA-Code des Moduls 'DieseArbeitsmappe'
- Name des VBA-Projektes
- Beschreibung des VBA-Projektes
- Kennwortschutz des VBA-Projektes
- Verweise auf andere Projekte und Bibliotheken
- Ausgeblendete Blätter
- Benutzerdefinierte Ansichten
- Änderungen an der Farbpalette
- Freigabe-Informationen (persönliche Ansichten, Änderungsprotokoll,
Freigabeschutz-Kennwort etc.)
- Diverse Einstellungen der Mappe (Optionen für Fenster, Ansicht, Berechnen etc.)
- Datei-Optionen (Sicherungskopie erstellen, Schreibschutz empfehlen etc.)
- Datei-Kennwörter (Schreibschutz- und Lese-/Schreib-Kennwort)
- Dokument-Eigenschaften (Titel, Thema, Autor, Manager, Kommentar, Stichwörter,
Hyperlink-Basis, Vorschaugrafik etc.)
- Benutzerdefinierte Dokument-Eigenschaften
- Weiteres
Probleme können auftreten bei:
- Zellinhalte länger als 255 Zeichen
- Formatvorlagen
- Benutzerdefinierte Zahlenformate
- Namen
- Bezüge
- Schriften
Beim Kopieren werden Zellinhalte länger als 255 Zeichen abgeschnitten und Bezüge in Zellformeln geändert.
Frage 12: Welche Rolle spielt das Grafikformat eines eingefügten Bildes?
Diese Frage kann ich leider nicht abschliessend beantworten. Aus den zugänglichen Dokumentationen von Microsoft geht nicht genau hervor, welchen Einfluss die verschiedenen Grafikformate auf die Grösse einer Arbeitsmappendatei haben. Ich habe daher mehrere Tests und Experimente durchgeführt, und bin zu folgenden Resultaten gekommen:
» Es macht keinen Unterschied, ob eine Grafik als bmp- oder als gif-Datei in ein Arbeitsblatt eingefügt wird. Die Arbeitsmappendatei ist nach dem Speichern identisch. Ich habe dies anhand eines Bildes getestet, welches ich einmal als 75 KB bmp-Datei und einmal als 6 KB gif-Datei eingefügt habe.
» Für die
Speicherung von Grafiken ist der Office Drawing Layer, üblich als Escher
Layer bekannt, zuständig. Es handelt sich dabei gewissermassen um einen Service, der
in der MS Office-DLL enthalten ist (bei Office 97 in der Datei MSO97.DLL). Escher wandelt
Grafiken, Zeichnungsobjekte wie AutoFormen (Shapes) und ähnliches wie Textured
Fills/Texturen (Fülleffekt "Struktur") und Pictures Fills (Fülleffekt
"Grafik") in speicherbare Informationen um, schreibt diese in Office-Dokumente
und liest sie aus Office-Dokumenten. Derartige Objekte werden von Escher als sogenannte
BLIP bezeichnet (Big Large Image or Picture).
Escher unterstützt fünf verschiedene BLIP-Typen:
- Windows Metafiles (*.wmf)
- Enhanced Metafiles (*.emf)
- JPEG File Interchange Format JFIF (*.jpg, *.jpeg)
- Portable Network Graphics (*.png)
- Macintosh PICT (*.pct)
Alle BLIPs eines Office-Dokumentes (z.B. Microsoft Excel-Arbeitsmappe oder
Word-Dokument) werden in einem separaten Container innerhalb der Datei abgelegt, dem
sogenannten BStore. Wenn ein BLIP, also beispielsweise eine eingefügte Grafik, mehrmals
im Dokument verwendet wird, wird es trotzdem immer nur ein einziges Mal in der
Dokumentdatei abgelegt. Die Datei wird folgedessen kaum erkennbar grösser, da lediglich
zusätzliche Referenzen gespeichert werden müssen.
» BLIPs vom Typ Metafile (Windows Metafile WMF und Enhanced Metafile EMF) werden in einem komprimierten Format gespeichert, wobei der LZ Kompressionsalgorythmus in dem von GNU Zip deflate/inflate verwendeten Format benutzt wird (zlib-Format).
» BLIPs vom Typ Macintosh PICT werden wie Metafiles in einem komprimierten Format gespeichert, wobei ebenfalls der LZ Kompressionsalgorythmus in dem von GNU Zip deflate/inflate verwendeten Format benutzt wird (zlib-Format).
» BLIPs vom Typ Bitmap (nicht zu verwechseln mit bmp-Dateien!), d.h. JPEG/JFIF, PNG und DIB (Device Independant Bitmap) werden vom Escher Layer nicht komprimiert, weil JPEG und PNG bereits komprimierte Formate sind. DIBs werden im Standard DIB-Format abgelegt und sind immer unkomprimiert.
» Bei Microsoft Excel werden die Daten des Escher Streams in BIFF-Records verpackt. Dazu werden die beiden Recordtypen MSODRAWING und MSODRAWINGGROUP herangezogen. BIFF-Records befinden sich immer im Stream der Arbeitsmappe. Folglich sind die Grafikdaten innerhalb des Workbook-Streams gespeichert.
» Nebenbei erwähnt: Escher besitzt eine interessante Funktionalität. Er unterstützt so genannte Delay Streams. Das bedeutet, dass ein BLIP bei Bedarf aus der Datei geladen werden kann, und nicht bereits beim Öffnen des Dokumentes geladen werden muss. Bei einem Word-Dokument heisst das, dass zum Beispiel eine eingefügte Grafik erst dann aus der doc-Datei geladen wird, wenn diejenige Seite des Dokumentes angezeigt wird, auf welcher sich die Grafik befindet. Die Delay Stream-Technik wird allerdings nur von Word und PowerPoint verwendet, jedoch nicht von Microsoft Excel. Das bedeutet, dass beim Öffnen einer Arbeitsmappe immer sämtliche Grafikobjekte geladen werden, was zwar mehr Arbeitsspeicher beansprucht, dafür aber zu keinen Arbeitsspeicher-Problemen während der Bearbeitung der Mappe führt, weil keine Daten nachgeladen werden.
Ausführliche Informationen über den Escher Layer und das Dateiformat BIFF erhalten Sie hier:
Weitere Informationen |
Frage 13: Wieso ändert sich die Dateigrösse beim Speichern der Mappe in einem anderen Ordner?
![]()
Nun, da sich die Dateigrösse je nach Speicherort der Arbeitsmappe verändert, muss die Ursache einen Zusammenhang mit Pfadinformationen besitzen. Folglich kommen insbesondere Verknüpfungsinformationen als potenzielle Verursacher in Frage.
Wenn eine Arbeitsmappe externe Bezüge auf andere Mappen oder andere Verknüpfungen zu externen Datenquellen enthält, so werden beim Speichern der Mappe die vollständigen Verknüpfungsinformationen in der Exceldatei abgelegt. Wenn Sie nun eine Arbeitsmappe in einem Ordner speichern, der einen längeren Pfad als der bisher verwendete Ordner besitzt (beispielsweise ein Unterverzeichnis des bisherigen Ablageortes), so wird zwangsläufig auch eine Verknüpfungsinformation länger. Die Verknüpfungsinformationen benötigen somit mehr Platz in der Exceldatei, was zu einer grösseren Datei führt.
ToDo: Es gibt allerdings Ausnahmen...
Frage 14: Wie kann man eine als XML Spreadsheet-Datei gespeicherte Mappe verkleinern?
![]()
In der Microsoft Knowledge Base gibt es einen Artikel zum
Thema "Verkleinern von XML Spreadsheet-Dateien". Sie finden den Artikel hier:
XL2002: How to Minimize the Size of an XML
Spreadsheet File
http://support.microsoft.com/?scid=kb;en-us;325091
![]()
Es kann vorkommen, dass die genau gleiche Arbeitsmappe, einmal mit Microsoft Excel 2003 und einmal beispielsweise mit Microsoft Excel 97 gespeichert, eine unterschiedliche Dateigrösse ergibt. Das gleiche gilt auch für Excel 2002 und Excel 2000. Je neuer die Excelversion ist, desto höher ist die Wahrscheinlichkeit, dass nach dem Speichern die Exceldatei kleiner ist im Vergleich zu einer älteren Excelversion.
Wie bereits an anderen Stellen auf dieser Seite erwähnt wurde, verwenden sämtliche gängigen Excelversionen - das gilt sowohl für Excel für Windows als auch für Excel für Macintosh - das gleiche Dateiformat namens BIFF8. Der Grund für die unterschiedliche Dateigrösse liegt somit nicht am Dateiformat. Es ist zwar so, dass Excel 2002 und Excel 2003 ein paar kleinere Erweiterungen bezüglich dem Dateiformat BIFF8 enthalten. Doch diese machen kaum einen erkennbaren Unterschied aus. Ausführliche Informationen über das von Microsoft Excel verwendete Dateiformat finden Sie im Kapitel Das Arbeitsmappen-Dateiformat BIFF.
Nach meinen Erfahrungen lässt sich folgendes erkennen:
- Die mit Excel 2000 erstellten Dateien sind grösser als die von Excel 97 (weil
Excel 2000 ein paar zusätzliche Daten in der Datei ablegt).
- Die mit Excel 2002 erstellten Dateien sind kleiner als die von Excel 2000 und
Excel 97 (weil Excel 2002 beim Speichern ein bisschen effizienter vorgeht).
- Die mit Excel 2003 erstellten Dateien sind etwa gleich gross wie die von Excel
2002, aber kleiner als die von Excel 2000 und Excel 97 (weil Excel 2003 beim Speichern
gleich wie Excel 2002 vorgeht).
Anmerkung des Autors
Bitte beachten Sie, dass die obigen Informationen weder wissenschaftlich bewiesen
noch anhand von Tests ermittelt wurden. Es handelt sich um rein subjektive Beobachtungen
von mir persönlich. Daher gilt: Alle Angaben ohne Gewähr.
![]()
Das Öffnen einer freigegebenen Arbeitsmappe durch einen neuen Anwender führt automatisch zu einer Vergrösserung der Exceldatei, sofern der Anwender die Mappe einmal speichert. Die Datei wird auch dann grösser, wenn der Anwender keine Änderungen in der Mappe vornimmt. Der Grund liegt an der automatischen Erstellung einer persönlichen Ansicht durch Microsoft Excel für diesen Anwender. Persönliche Ansichten sind im Dialogfenster "Benutzerdefinierte Ansichten" aufgelistet.

Abbildung: Dialogfenster "Benutzerdefinierte
Ansichten" mit 5 persönlichen Ansichten
Wenn eine freigegebene Mappe von sehr vielen Anwendern über einen längeren Zeitraum benutzt wird, sollten Sie gelegentlich die nicht mehr benötigten persönlichen Ansichten entfernen (Dialogfenster "Benutzerdefinierte Ansichten"). Löschen Sie die Ansichten von Anwendern, welche die Mappe nicht mehr bearbeiten werden (z.B. wegen Wechsel in ein anderes Unternehmen, interner Stellenwechsel, Pensionierung und so weiter). Dadurch wird die Arbeitsmappendatei kleiner und es wird weniger Arbeitsspeicher benötigt.
Exkurs: Unterschied zwischen einer persönlichen
und einer benutzerdefinierten Ansicht
» Eine persönliche Ansicht wird von Microsoft Excel automatisch
generiert, wenn ein Anwender eine freigegebene Arbeitsmappe öffnet und erstmalig
speichert. Persönliche Ansichten sind zusammen mit den benutzerdefinierten Ansichten im
Dialogfenster "Benutzerdefinierte Ansichten" aufgeführt, wobei persönliche
Ansichten am Zusatz " - Persönliche Ansicht" zu erkennen sind. Der Name einer
persönlichen Ansicht setzt sich immer aus dem Namen eines Anwenders sowie dem erwähnten
Zusatz " - Persönliche Ansicht" zusammen.
» Eine benutzerdefinierte Ansicht wird explizit vom Anwender angelegt, indem
er im Dialogfenster "Benutzerdefinierte Ansichten" (Menübefehl Ansicht/Ansicht
anpassen) auf die Schaltfläche "Hinzufügen" klickt. Der Name für eine
neue benutzerdefinierte Ansicht kann frei gewählt werden.
Es gibt tatsächlich eine Situation, in der eine Arbeitsmappendatei je nach Anzahl der enthaltenen Arbeitsblättern nach dem Speichern zum Teil erheblich grösser ist. Pro Arbeitsblatt (Tabellenblatt, Diagrammblatt usw.) in der Arbeitsmappe vergrössert sich die xls-Datei um zirka 1.48 KB (Wert anhand einer Excel 97-Arbeitsmappe ermittelt; bei Excel 2000 und neuer müsste dieser Wert theoretisch gleich sein).
Generierung der VBA-Projektstruktur (Symbol Table)
Wie erwähnt werden im Projekt-Explorer die VBA-Module des Projektes angezeigt, was
soviel heisst wie, dass die sogenannte "Symbol Table" bzw. "Project
Table" visuell dargestellt wird. Das VBA-Projekt (d.h. die Symbol Table) einer neu
angelegten Arbeitsmappe wird nur dann generiert, wenn der VBA-Editor geöffnet ist.
Das bedeutet folgendes:
Wenn eine neue Arbeitsmappe
angelegt wird, während der VBA-Editor geschlossen ist, wird die
VBA-Projektstruktur zu dieser Mappe nicht generiert.
Wenn der VBA-Editor
geöffnet ist und dann eine neue Arbeitsmappe angelegt wird, wird die
Projektstruktur generiert.
Wenn der VBA-Editor
geschlossen ist, dann eine neue Arbeitsmappe angelegt und anschliessend der VBA-Editor
geöffnet wird, wird die Projektstruktur beim Öffnen des VBA-Editors generiert.
Wenn der VBA-Editor
geöffnet ist, dann eine neue Arbeitsmappe angelegt und anschliessend der VBA-Editor
geschlossen wird, wird die Projektstruktur beim Anlegen der neuen Mappe generiert,
da zu diesem Zeitpunkt der VBA-Editor geöffnet war.
Wurde die VBA-Projektstruktur einer Mappe einmal generiert, so bleibt sie für immer bestehen. Man kann die Generierung nicht rückgängig machen. Es ist auch nicht möglich, die Projektstruktur aus einer Mappe zu entfernen.
Dateigrösse mit und ohne VBA-Projektstruktur
Die Struktur des VBA-Projektes wird in der Arbeitsmappendatei gespeichert. Wird
eine neu angelegte Arbeitsmappe gespeichert, deren Projektstruktur nicht generiert wurde,
so wird die Mappe ohne Projektstruktur gespeichert. Hier ein paar Werte, die ich mit
verschiedenen Tests ermittelt habe:
Erstellen und speichern einer neuen, leeren Arbeitsmappe:
Die
Grösse der Arbeitsmappendatei mit 3 Arbeitsblättern und ohne
Projektstruktur beträgt 14 KB.
Die Grösse der
Arbeitsmappendatei mit 3 Arbeitsblättern und mit Projektstruktur
beträgt 17 KB (-> 3 KB mehr als ohne Projektstruktur).
Die
Grösse der Arbeitsmappendatei mit 255 Arbeitsblättern und ohne
Projektstruktur beträgt 82 KB.
Die Grösse der
Arbeitsmappendatei mit 255 Arbeitsblättern und mit Projektstruktur
beträgt 460 KB (-> 378 KB mehr als ohne Projektstruktur).
Die obigen Werte wurden anhand einer Microsoft Excel 97-Arbeitsmappe ermittelt.
Hinweis
Wie insbesondere an der Dateigrösse 460 KB zu sehen ist, sollte man den
VBA-Editor schliessen, bevor man eine neue Arbeitsmappe erstellt. Solange man keine Makros
oder VBA-Programmcode in der Mappe benötigt, sollte der VBA-Editor geschlossen bleiben,
da dies vor allem bei Mappen mit vielen Tabellenblättern zu einer viel kleineren Datei
führt.
Dieser Artikel der Microsoft Knowledge Base enthält ein
paar weitere Informationen:
XL97: File Size Increases After Launching Visual
Basic Editor
http://support.microsoft.com/?scid=kb;en-us;166092
In der Microsoft Knowledge Base gibt es noch einen Artikel
zu einem ähnlichen Thema:
OFFICE2000: Template Size Increases When You Add
or Remove Visual Basic Code
http://support.microsoft.com/?scid=kb;en-us;264907
Weitere Informationen siehe hier:
Weitere Informationen
|
Frage 18: Wieso nimmt die Dateigrösse durch das erstmalige Ausdrucken von Blättern zu?
Wenn man einer Arbeitsmappe ein neues Blatt hinzufügt, so kennt Excel zu diesem Zeitpunkt die Drucker-Einstellungen bzw. Seiteneinrichtung-Einstellungen dieses Blattes noch nicht. Erst wenn das Blatt ausgedruckt oder eine vergleichbare Funktion aufgerufen wird, welche diese Einstellungen benötigt, werden die Informationen über Drucker und Seiteneinrichtung generiert. Das macht Excel automatisch im Hintergrund und ist für den Benutzer nicht sichtbar. Da bis zum Zeitpunkt der Generierung keine Drucker-/Seiteneinrichtung-Informationen für das Arbeitsblatt existieren, können sie auch nicht in der xls-Datei der Arbeitsmappe gespeichert werden. Folglich ist die Exceldatei vor der Generierung kleiner als nach der Generierung.
Diese Funktionen führen zur Generierung der
Drucker-/Seiteneinrichtung-Informationen:
- Öffnen des Drucken-Dialoges
- Öffnen des Dialogfensters "Seite einrichten"
- Anzeigen der Seitenansicht/Druckvorschau
- Umschalten zur Seitenumbruch-Vorschau
- Festlegen des Druckbereiches
- Aktivieren der Fensteroption "Seitenwechsel" (Optionen-Dialog)
- Einfügen eines manuellen Seitenwechsels
Die Informationen werden immer nur für dasjenige Arbeitsblatt generiert, welches gerade aktiv war, als eine der obigen Funktionen ausgeführt wurde. Pro Arbeitsblatt nimmt die Dateigrösse um ca. 1 KB zu. Wenn Sie beispielsweise eine Arbeitsmappe mit 50 Blättern besitzen und alle Blätter zum ersten Mal ausdrucken, wird die Exceldatei ca. 50 KB grösser.
Frage 19: Wie stark beeinflusst die Mappenfreigabe die Grösse einer Exceldatei?
Die Datei einer freigegebenen Arbeitsmappe ist generell grösser als die Datei einer nicht-freigegebenen Mappe.
- Persönliche Ansichten
- Änderungsprotokoll (Stream "Revision Log")
- Benutzernamen (Stream "User Names")
Restliche Beschreibung folgt in Kürze...
Frage 20: Was sollte man bei der Makroarbeitsmappe Personl.xls beachten?
![]()
In der persönlichen Makroarbeitsmappe kann man den VBA-Programmcode von Makros speichern, die man während der Arbeit mit Microsoft Excel benötigt. Diese Arbeitsmappe besitzt bei Microsoft Excel für Windows standardmässig den Dateinamen "Personl.xls" und befindet sich im Excel-Startordner "XlStart". Auf Macintosh lautet der Dateiname "Personal Macro Workbook", und die Datei befindet sich im Office-Startordner "Startup:Excel".
Ist eine gewöhnliche Arbeitsmappe, nur dass sie ausgeblendet ist und ausschliessliche VBA-Programmcode enthält.
Wird beim Excelstart geladen und bleibt bis zum Beenden von Excel geöffnet.
Frage 21: Wie wichtig ist die Dateigrösse eines Excel Add-Ins (xla-Datei)?
![]()
Nun, es kommt drauf an. Ob eine xla-Datei 30 KB, 50 KB oder 100 KB gross ist, spielt an sich keine Rolle. Bei Add-In-Dateien, die grösser als sagen wir mal 300 KB sind, sollte man sich allerdings überlegen, ob die Dateigrösse nicht optimiert (sprich reduziert) werden kann.
Ein Add-In ist im Prizip nichts anderes als eine 'spezielle' Arbeitsmappe.
Belegt Arbeitsspeicher und auch Workbook Memory.
Bevor ein Add-In operativ in Betrieb genommen wird, sollte man die Dateigrösse optimieren.
Standard-Add-Ins von Microsoft:
- Add-In-Verknüpfungen aktualisieren
- Analyse-Funktionen
- Automatisches Speichern
- Internet-Assistent
- LexiROM Integration
- Teilsummen-Assistent
- Verweis-Assistent
- Vorlagen-Zubehör
- Web-Formular-Assistent
Es gelten die gleichen Regeln wie für die Makroarbeitsmappe Personl.xls (bzw. "Personal Macro Workbook" auf Macintosh).
Frage 22: Warum ist die Datei mit Programmcode im Workbook_Open-Ereignis nach dem Speichern grösser?
Eine Arbeitsmappe, die Programmcode im Workbook_Open-, Workbook_Activate- oder Workbook_WindowActivate-Ereignis enthält, oder ein Auto_Open-Makro besitzt, kann durch das Speichern tatsächlich grösser werden, obwohl man keinerlei Änderungen in der Arbeitsmappe bzw. im VBA-Projekt vorgenommen hat.
Die Ursache dafür liegt an der Code-Kompilierung, die automatisch bei Ausführen von Programmcode durchgeführt wird.
Restliche Beschreibung folgt in Kürze...
Frage 23: Wie gross ist das VBA-Projekt in einer Exceldatei?
Im Internet findet man mehrere Tools, mit denen man die Grösse des Programmcodes eines VBA-Projektes herausfinden kann. Ein bekanntes und sehr gutes Tool ist das Excel Add-In 'Code Documentor' von Application Professionals. Eines haben alle diese Tools gemeinsam: Sie zeigen die Grösse des Programmcodes der einzelnen Projektmodule, indem die Module als Datei exportiert werden und dann die Dateigrösse abgefragt wird.
Restliche Beschreibung folgt in Kürze...
Microsoft Knowledge Base-Artikel
XL97/2000/2002: Updating DAO Recordset from Excel
Increases File Size
http://support.microsoft.com/?scid=kb;en-us;254634
XL97/2000/2002/2003: How to Minimize Metadata in
Microsoft Excel Workbooks
http://support.microsoft.com/?scid=kb;en-us;223789
XL (all Versions): File Size Increases After You
Paste a Formula in a Large Cell Range
http://support.microsoft.com/?scid=kb;en-us;824837
XL2002: File That Contains PivotTable Grows Each
Time It Is Saved
http://support.microsoft.com/?scid=kb;en-us;316446
» Dieses Problem wurde im Microsoft Office XP Service
Pack 2 (SP-2) behoben.
OFFICE97: Large Increase in Document File Size After
Inserting JPEG
http://support.microsoft.com/?scid=kb;en-us;186369
» Dieses Problem wurde im Microsoft Office 97
Service Release 2 behoben.
XL (all Versions): MS Excel 2.x/3.x/4.x Worksheets
Take a Long Time to Open/Save
http://support.microsoft.com/?scid=kb;en-us;104310
XL97: File Size Increases After Launching Visual
Basic Editor
http://support.microsoft.com/?scid=kb;en-us;166092
OFF2000: Template Size Increases When You Add or
Remove Visual Basic Code
http://support.microsoft.com/?scid=kb;en-us;264907
XL2003: Empty Rows Appear in an Excel 2003
Spreadsheet
http://support.microsoft.com/?scid=kb;en-us;816952
Haben Sie Fragen,
Anregungen oder einen Fehler entdeckt?
Kontakt zum Autor
Zuletzt aktualisiert am
8.05.2006 / 23:00 Uhr
Zuletzt kontrolliert am 19.12.2008 / 17:00 Uhr
© 2002-2009 by Philipp von Wartburg, Schweiz
Alle Rechte vorbehalten