Home HomeXLimits - Hauptseite


Dateigrösse von Arbeitsmappen

Inhaltsübersicht

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

Dateiformate

The SOSCQ Page: Excel-Dateiformat BIFF

The SOSCQ Page: Excel-Dateitypen

Diese Internetseite steht auch als Acrobat PDF-Dokument zur Verfügung. Hier erfahren Sie mehr darüber:

Themenseiten als PDF-Dokument

To Top

 


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

The SOSCQ Page: Excel-Dateiformat BIFF

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:

Gehe zur Download-Seite  Hier gehts zur Downloadseite

To Top

 


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

Limitationen in Microsoft Excel

Excel-Arbeitsspeicher

Systemressourcen

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

Limitationen in Microsoft Word

To Top

 


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.

Zur Inhaltsübersicht


Typ der Zelldaten in der Arbeitsmappe

Mit "Typ der Zelldaten" ist gemeint, ob in einer Zelle eine Zahl, ein Text oder eine Formel steht.

Zur Inhaltsübersicht


Design der Arbeitsmappe

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.

Zur Inhaltsübersicht


Darstellung der Informationen

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.

Zur Inhaltsübersicht


Verwendete Features

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

Zur Inhaltsübersicht


Weitere Faktoren

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?".

To Top

 


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

To Top

 


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.

Dialogfenster "Zellen" mit Registerseite "Muster"
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:

Gehe zur Download-Seite  Hier gehts zur Downloadseite

To Top

 


Duale Dateiformate

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

The SOSCQ Page: Excel-Dateiformat BIFF

Zur Inhaltsübersicht


Die Back Seeking-Technik

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

The SOSCQ Page: Excel-interne Prozesse: Die Back Seeking-Technik zum Lesen und Schreiben von Dateien

Zur Inhaltsübersicht


Speichern einer Arbeitsmappe

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.

Zur Inhaltsübersicht


Öffnen einer Arbeitsmappe

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.

Zur Inhaltsübersicht


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).

Zur Inhaltsübersicht


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

The SOSCQ Page: Wozu sind duale Dateiformate gut?

To Top

 


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

Excel-Arbeitsspeicher

To Top

 


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 15: Warum ist eine mit Excel 2003 gespeicherte Arbeitsmappendatei kleiner als mit einer älteren Excelversion?

Frage 16: Warum wird eine freigegebene Mappe grösser, obwohl keine Änderungen vorgenommen werden (ohne Änderungsprotokoll)?

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?

Zur Inhaltsübersicht


Frage 1: Warum ist die Datei nach dem Löschen von Zellformatierungen grösser?

Auch für Microsoft Excel for Macintosh anwendbar

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

Zur Inhaltsübersicht


Frage 2: Wieso wird die Datei durch das Ein-/Ausblenden von Zeilen um ein Vielfaches grösser?

Auch für Microsoft Excel for Macintosh anwendbar

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:

  1. Legen Sie eine neue, leere Arbeitsmappe in Microsoft Excel an (Excelversion und Blattanzahl spielt keine Rolle).

  2. 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 Schaltfläche "Füllmuster" klicken).

  3. Selektieren Sie die Zelle A1 und speichern dann die Arbeitsmappe.

  4. Ö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).

  5. 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).

  6. Selektieren Sie die Zelle A1 und speichern die Arbeitsmappe erneut.

  7. Ö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.

Zur Inhaltsübersicht


Frage 3: Warum ist die Datei nach dem Speichern, Schliessen und erneuten Öffnen plötzlich kleiner?

Auch für Microsoft Excel for Macintosh anwendbar

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

Zur Inhaltsübersicht


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:

Gehe zur Download-Seite  Hier gehts zur Downloadseite

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:

Gehe zur Download-Seite  Hier gehts zur Downloadseite

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.

Zur Inhaltsübersicht


Frage 5: Werden in einer Exceldatei Informationen über Undo-Schritte gespeichert?

Auch für Microsoft Excel for Macintosh anwendbar

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

Der Undo-Speicher

Zur Inhaltsübersicht


Frage 6: Gibt es in Excel eine Art Komprimierungsfunktion ähnlich wie in Microsoft Access?

Auch für Microsoft Excel for Macintosh anwendbar

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.

Zur Inhaltsübersicht


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.

Zur Inhaltsübersicht


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

Zur Inhaltsübersicht


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>").

.Zur Inhaltsübersicht


Frage 10: Warum wird die Datei durch Ausschalten der Zeilen-/Spaltenköpfe und Gitternetzlinien viel kleiner?

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.

Zur Inhaltsübersicht


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.

Zur Inhaltsübersicht


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

The SOSCQ Page: Excel-Dateiformat BIFF

Zur Inhaltsübersicht


Frage 13: Wieso ändert sich die Dateigrösse beim Speichern der Mappe in einem anderen Ordner?

Auch für Microsoft Excel for Macintosh anwendbar

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...

Zur Inhaltsübersicht


Frage 14: Wie kann man eine als XML Spreadsheet-Datei gespeicherte Mappe verkleinern?

Auch für Microsoft Excel for Macintosh anwendbar

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

Zur Inhaltsübersicht


Frage 15: Warum ist eine mit Excel 2003 gespeicherte Arbeitsmappendatei kleiner als mit einer älteren Excelversion?

Auch für Microsoft Excel for Macintosh anwendbar

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.

Zur Inhaltsübersicht


Frage 16: Warum wird eine freigegebene Mappe grösser, obwohl keine Änderungen vorgenommen werden und das Änderungsprotokollierung deaktiviert ist?

Auch für Microsoft Excel for Macintosh anwendbar

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.

Dialogfenster "Ansichten"
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.

Zur Inhaltsübersicht


Frage 17: Wieso ist die Mappe nach dem Speichern plötzlich grösser, ohne dass Änderungen vorgenommen wurden?

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

Dateigrösse von Arbeitsmappen reduzieren: VBA-Projektstruktur löschen

Zur Inhaltsübersicht


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.

Zur Inhaltsübersicht


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...

Zur Inhaltsübersicht


Frage 20: Was sollte man bei der Makroarbeitsmappe Personl.xls beachten?

Auch für Microsoft Excel for Macintosh anwendbar

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.

Zur Inhaltsübersicht


Frage 21: Wie wichtig ist die Dateigrösse eines Excel Add-Ins (xla-Datei)?

Auch für Microsoft Excel for Macintosh anwendbar

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).

Zur Inhaltsübersicht


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...

Zur Inhaltsübersicht


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...

To Top

 


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

To Top


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