Speichern von Excel-Arbeitsmappen ausschließlich im .xlsm-Format
Schritt-für-Schritt-Anleitung
Um sicherzustellen, dass eine Excel-Arbeitsmappe nur im .xlsm-Format gespeichert werden kann, kannst Du den folgenden VBA-Code verwenden. Dieser Code wird im Workbook_BeforeSave
-Ereignis platziert:
- Öffne Deine Excel-Datei und drücke
ALT + F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.
- Wähle im Projekt-Explorer links die Arbeitsmappe aus, in der Du den Code einfügen möchtest.
- Doppelklicke auf "Diese Arbeitsmappe" (ThisWorkbook).
- Füge den folgenden Code in das Codefenster ein:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Datei As Variant
If SaveAsUI Then
Cancel = True
Do
Datei = Application.GetSaveAsFilename
If VarType(Datei) <> vbString Then Exit Do
Datei = Left(Datei, InStrRev(Datei, ".")) & "xlsm"
If Dir(Datei) <> "" Then
Select Case MsgBox("Datei existiert schon, überschreiben?", vbQuestion + vbYesNoCancel)
Case vbYes
Kill Datei
Me.SaveAs Datei, xlOpenXMLWorkbookMacroEnabled
Exit Do
Case vbNo
Case vbCancel
Exit Do
End Select
Else
Me.SaveAs Datei, xlOpenXMLWorkbookMacroEnabled
Exit Do
End If
Loop
End If
End Sub
- Speichere Deine Änderungen und schließe den VBA-Editor.
Jetzt wird beim Speichern der Arbeitsmappe nur das .xlsm-Format akzeptiert.
Häufige Fehler und Lösungen
Alternative Methoden
Eine alternative Methode, um sicherzustellen, dass eine Excel-Arbeitsmappe nur als .xlsm gespeichert werden kann, besteht darin, eine Schaltfläche zu erstellen, die das Speichern auslöst. Du kannst ein Makro an diese Schaltfläche binden, das denselben Code wie oben verwendet. Dies kann die Benutzerfreundlichkeit erhöhen, da die Benutzer nicht den Speichern-Dialog verwenden müssen.
Praktische Beispiele
Wenn Du einen Workflow hast, in dem Du oft Daten von Kunden zurückerhältst, könntest Du auch überlegen, ein zusätzliches Makro zu schreiben, das die zurückgesendeten Daten automatisch in eine Vorlage überträgt und diese dann als .xlsm speichert. Dies spart Zeit und reduziert die Fehleranfälligkeit.
Tipps für Profis
- Nutze die Möglichkeit, .xlsm in PDF umzuwandeln, um Daten sicher zu teilen, ohne dass der Empfänger die Makros ausführen kann.
- Halte den VBA-Code gut dokumentiert, um es einfacher zu machen, ihn später zu warten oder anzupassen.
- Überlege, die Benutzeroberfläche weiter anzupassen, um den Prozess für Endbenutzer so einfach wie möglich zu gestalten.
FAQ: Häufige Fragen
1. Wie kann ich die Arbeitsmappe in ein .xlsm-Format umwandeln, wenn sie bereits im .xlsx-Format gespeichert wurde?
Du kannst das .xlsx-Dokument öffnen und dann "Speichern unter" wählen und das Format auf .xlsm ändern.
2. Was passiert, wenn ich eine .xlsm-Datei mit deaktivierten Makros öffne?
Wenn Makros deaktiviert sind, wird der VBA-Code, der das Speichern steuert, nicht ausgeführt. Benutzer müssen die Makros aktivieren, um die Speichereinstellungen zu nutzen.