XLSM

Was ist eine XLSM-Datei?

Eine Excel-Mappe mit angehängten Makros.

Was XLSM ist

XLSM ist ein Behälter: eine Hülle für Ströme, die etwas anderes kodiert hat. Eingesetzt wird es für die Bearbeitung.

Die Endung lautet .xlsm, der volle Name Excel Macro-Enabled Workbook. Beides sagt weniger aus als das, was die Datei halten kann — und davon handelt der Rest dieser Seite.

Woher XLSM kommt

Microsoft hat es 2007 veröffentlicht. Die Spezifikation ist ECMA-376.

Das Alter ist aus einem praktischen Grund interessant: je älter ein Format, desto mehr Programme hatten Zeit, es zu lernen.

Die Spezifikation ist öffentlich

Sie ist vollständig veröffentlicht, das Format lässt sich also aus dem Dokument umsetzen statt durch Nachsehen. Deshalb taucht es in so vielen Programmen auf, und deshalb gehen Dateien von vor zwanzig Jahren heute noch auf. Veröffentlicht heißt allerdings nicht lizenzfrei: Wo ein Format einen Codec einpackt, ist die Patentfrage eine eigene, die der Standard nicht mitbeantwortet.

Es kann mehrere Seiten in einer Datei halten

Eine XLSM-Datei ist nicht auf eine Seite beschränkt. Beim Umwandeln in etwas, das es ist, zählt das: Eine Umwandlung ergibt eine Datei mit genau einer Seite — der ersten, sofern sich die Seite nicht auswählen lässt.

Es kann Makros enthalten

XLSM darf ausführbaren Code mitführen, und meist ist genau das der Grund, aus dem jemand dieser Endung überhaupt begegnet: Ein Mailserver oder ein Portal hat sie abgewiesen. Der übliche Weg daran vorbei ist die Umwandlung in ein Format ohne Makros — und ja, die Makros sind danach weg.

Was für ein Dokument es ist

XLSM enthält eine Tabelle: Zellen, Formeln und die Blätter darum herum.

Daraus folgt, wie es sich umwandeln lässt: Aus einer Tabelle wird ein Druckbereich, und wo die Spalten umbrechen, muss jemand entscheiden.

Was XLSM öffnet

Microsoft Excel liest es, und die meisten Programme derselben Art ebenfalls.

Wenn eine Datei nicht aufgeht, liegt es selten am Format — häufiger daran, dass das Programm älter ist als das Format. Die Umwandlung in etwas Älteres ist der verlässliche Weg daran vorbei, und dafür gibt es den Rest dieser Website.

Im Browser öffnen

Kein Browser liest es.

Das ist der häufigste Grund, es umzuwandeln: nicht dass das Format schlecht wäre, sondern dass die Stelle, an der die Datei erscheinen soll, es nicht lesen kann.

Es ist ein Arbeitsformat

XLSM ist zum Öffnen und Ändern gedacht. Behalte die Datei in diesem Format, solange die Arbeit läuft, und exportiere daraus, wann immer eine fertige Fassung gebraucht wird.

Die Endung ist absichtlich ein Warnschild

XLSM und XLSX sind dasselbe Format. Beide sind ZIP-Pakete aus XML, beide tragen dieselben Tabellenblätter, Formeln und Formatierungen, und der einzige Unterschied ist, dass eine XLSM ein VBA-Projekt enthalten darf und eine XLSX nicht.

Genau das war der Sinn der Trennung. Vor 2007 konnte eine Arbeitsmappe Makros tragen, ohne dass die Endung das anzeigte, und Tabellen gehörten zu den wirksamsten Verbreitungswegen für Schadsoftware, die je verwendet wurden. Getrennte Endungen bedeuten, dass eine Empfängerin schon vor dem Öffnen sieht, ob eine Datei behauptet, ein VBA-Projekt zu enthalten. Das ist enger gefasst als „sicher" — auch eine gewöhnliche XLSX kann DDE-Formeln oder eingebettete OLE-Objekte tragen —, aber es ist die Garantie, auf der jede Poststelle ihre Filterregel aufbaut.

Was ein Makro tatsächlich kann

VBA ist eine vollständige Programmiersprache mit Zugriff auf das Dateisystem, das Netzwerk und andere Anwendungen. Ein Makro kann Dateien lesen und schreiben, überall dort, wo die Nutzerin es auch könnte, Daten nach außen senden, Programme starten und andere Dokumente verändern. Es ist keine auf das Blatt begrenzte Formelsprache.

Das ist der ehrliche Grund für die Vorsicht. Die weit überwiegende Mehrheit der Makros ist die Berichtsautomatisierung einer Kollegin, die genau das tut, was sie behauptet. Die Minderheit, die es nicht ist, hat dieselben Fähigkeiten, und die Datei bietet keine Möglichkeit, die beiden zu unterscheiden, außer den Code zu lesen.

Warum die Makros beim Öffnen nicht laufen

Excel deaktiviert Makros standardmäßig und zeigt eine Leiste. Kommt die Datei aus dem Internet oder einem E-Mail-Anhang, markiert Windows sie zusätzlich mit einer Zonenkennzeichnung, und seit 2022 blockiert Excel Makros in solchen Dateien komplett — eine rote Leiste statt einer Schaltfläche zum Aktivieren.

Der vorgesehene Weg für eine vertrauenswürdige Datei ist, sie in den Dateieigenschaften zu entsperren oder in einen als vertrauenswürdig eingerichteten Ordner zu legen. Wovon man sich abgewöhnen sollte, ist das Durchklicken: Genau dieser eine Klick war bei der Emotet-Welle 2019/2020, die unter anderem das Berliner Kammergericht und die Humboldt-Universität lahmlegte, der letzte Schritt in einer sehr großen Zahl echter Vorfälle.

Wo der Code liegt, und warum er undurchsichtig ist

Das VBA-Projekt liegt im ZIP als binärer Strom — der einzige Teil eines Office-Open-XML-Pakets, der kein lesbares XML ist. Die Datei in .zip umbenannt und geöffnet, zeigt die Tabellenblätter als Klartext und das Makro als unlesbaren Datenklumpen.

Ein Makro zu prüfen bedeutet also, den VBA-Editor in Excel oder LibreOffice zu öffnen, was die meisten nicht tun und was der einzige verlässliche Weg ist, herauszufinden, was eine Arbeitsmappe tut. Es bedeutet auch, dass die Versionsverwaltung keinen sinnvollen Diff des Codes zeigen kann, weshalb ernsthafte Tabellenautomatisierung VBA irgendwann für etwas verlässt, das in Textdateien lebt.

Nach XLSX umwandeln entfernt die Automatisierung

Eine XLSM als XLSX zu speichern entfernt das VBA-Projekt und behält alles andere — Blätter, Formeln, Formatierung, Diagramme, benannte Bereiche. Excel warnt vorher, und diese Warnung ist der ganze Vorgang.

Genau das will man bei einer von außen erhaltenen Arbeitsmappe, aus der nur die Zahlen gelesen werden sollen, und genau das will man nicht bei einer Datei, deren Automatisierung ihr Zweck ist. Die Unterscheidung ist einfach: Tut die Arbeitsmappe etwas, sobald man eine Schaltfläche drückt, zerstört die Umwandlung das; hält sie nur Daten, macht die Umwandlung sie sicherer.

Und die Umwandlung nach PDF oder CSV

PDF für alles, was verschickt, abgelegt oder gedruckt wird. Das Ergebnis ist fixiert, trägt überhaupt keinen ausführbaren Inhalt, und beseitigt in einem Schritt sowohl die Layout- als auch die Makrofrage. Für die Verteilung eines Berichts aus einer makrogesteuerten Arbeitsmappe ist das fast immer die richtige Ausgabe.

CSV, wenn das Ziel eine Datenbank, ein Skript oder eine Analysepipeline ist. Es trägt ein Tabellenblatt aus Werten und sonst nichts — keine Formeln, keine Formatierung, keinen Code —, genau deshalb verlangen Importroutinen und sicherheitsbewusste Systeme es namentlich. Dafür in Excel oder LibreOffice als XLSX speichern und von dort als CSV exportieren; eine XLSM lässt sich nicht in einem Schritt in CSV umwandeln.

Wenn eine Arbeitsmappe den Makros entwachsen ist

Ein VBA-Projekt, auf dem eine ganze Abteilung mittlerweile arbeitet, ist eine Last, die man beim Namen nennen sollte: Der Code ist der Versionsverwaltung undurchsichtig, er läuft nur, wo Excel läuft, er bricht, wenn ein Blatt umbenannt wird, und meist pflegt ihn eine einzelne Person, die inzwischen die Stelle gewechselt hat.

Microsofts eigene Richtung sind Office-Skripte und Power Automate für solche Aufgaben, und außerhalb der Microsoft-Welt erledigt ein kleines Skript in einer Sprache, die die Datei direkt liest, denselben Job in Dateien, die sich diffen lassen. Keines davon ist ein Grund, ein funktionierendes Makro neu zu schreiben. Beides lohnt sich zu kennen, bevor eines entsteht, von dem hundert Leute abhängig werden.

Die Eckdaten auf einen Blick

Kennungen und Herkunft des Formats XLSM.
Endung.xlsm
Medientypapplication/vnd.ms-excel.sheet.macroEnabled.12
Herausgegeben vonMicrosoft
Erstmals veröffentlicht2007
SpezifikationECMA-376

Häufige Fragen zu XLSM-Dateien

Was ist der Unterschied zwischen XLSM und XLSX?

Nur, dass eine XLSM VBA-Makros enthalten darf und eine XLSX nicht. Ansonsten sind die Formate identisch — beide sind ZIP-Pakete aus XML mit denselben Blättern, Formeln und Formatierungen. Die getrennte Endung existiert, damit eine Empfängerin vor dem Öffnen sieht, ob eine Datei behauptet, Code zu enthalten.

Warum sind die Makros deaktiviert, wenn ich die Datei öffne?

Excel deaktiviert sie standardmäßig, und seit 2022 blockiert es sie in Dateien aus dem Internet oder einem E-Mail-Anhang komplett. Bei einer vertrauenswürdigen Datei in den Dateieigenschaften entsperren oder in einen vertrauenswürdigen Ordner legen — aber genau dieser Klick war bei vielen echten Vorfällen der letzte Schritt.

Ist es sicher, eine XLSM-Datei zu öffnen?

Mit deaktivierten Makros so sicher wie eine XLSX. Die Entscheidung fällt beim Aktivieren, und VBA hat vollen Zugriff auf das Dateisystem, das Netzwerk und andere Anwendungen. Nur bei Dateien aktivieren, deren Herkunft tatsächlich bekannt ist.

Wie entferne ich Makros aus einer Arbeitsmappe?

Als XLSX speichern. Das VBA-Projekt wird verworfen, alles andere — Blätter, Formeln, Formatierung, Diagramme — bleibt erhalten. Excel warnt vorher, und diese Warnung ist der ganze Vorgang.

Kann ich sehen, was ein Makro tut?

Nur durch Öffnen des VBA-Editors in Excel oder LibreOffice. Der Code liegt als binärer Strom im Paket, weshalb eine Umbenennung in .zip die Blätter als lesbares XML und das Makro als unlesbaren Datenklumpen zeigt.

Führt LibreOffice Excel-Makros aus?

Es öffnet die Datei und behält die Daten, führt VBA aber nicht zuverlässig aus — die beiden Anwendungen nutzen unterschiedliche Skriptsysteme mit unterschiedlichen Objektmodellen. Alles über einfache Makros hinaus muss neu geschrieben statt übersetzt werden.