Speichern unter in Microsoft Excel VBA

Bilal Shahid 21 Juni 2023
  1. Was ist die SaveAs-Funktion in VBA
  2. Beispiel 1: Arbeitsmappe speichern
  3. Beispiel 2: Erstellen Sie eine neue Arbeitsmappe und speichern Sie sie
  4. Beispiel 3: Speichern Sie die aktive Arbeitsmappe
  5. Beispiel 4: Alle aktiven Arbeitsmappen speichern
  6. Beispiel 5: Verwenden Sie die SaveAs-Funktionsparameter
  7. Abschluss
Speichern unter in Microsoft Excel VBA

VBA bietet Entwicklern eine Vielzahl unterschiedlicher Funktionen und Features. In diesem Artikel erfahren Sie mehr über die SaveAs-Methode in VBA.

Was ist die SaveAs-Funktion in VBA

Die SaveAs-Methode speichert ein Arbeitsmappenobjekt an einem angegebenen Pfadziel in Excel VBA. Eine Arbeitsmappe ist eine Excel-Datei, die die Arbeitsblätter enthält, an denen Sie arbeiten.

Diese Arbeitsmappen enthalten wichtige Daten, die wir mit der Speichern unter-Funktion auf Ihrem Computer speichern können.

Hinweis: VBA verfügt auch über eine Speichern-Funktion zum Speichern einer Datei, die jedoch keinen bestimmten Ort benötigt. Wenn Sie speichern möchten, ohne den Code zu schreiben, können Sie dies außerdem manuell mit den Optionen Speichern und Speichern unter im Menü Datei oder mit Strg+S-Verknüpfung.

Syntax

Die Syntax für die SaveAs-Funktion in VBA ist wie folgt:

expression.SaveAs (FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)

Schauen wir uns die Parameter der Funktion an:

  1. Ausdruck: Der Name der Variablen repräsentiert das Arbeitsmappenobjekt. Beispielsweise können wir die Variable ActiveWorkbook verwenden, um die aktuell geöffnete Arbeitsmappe anzugeben.
  2. Dateiname: Dies ist der Dateiname, den Sie speichern möchten, optional mit Pfad. Die Datei wird im aktuellen Ordner gespeichert, wenn der Pfad nicht angegeben ist.
  3. Dateiformat: Gibt an, in welchem Format Sie die Datei speichern möchten, wodurch auch die Endung bestimmt wird. Wenn nichts angegeben ist und Sie Ihre Datei zum ersten Mal speichern, ist das verwendete Format die verwendete Excel-Version.
  4. Passwort: Wenn Sie ein Passwort für Ihre Datei behalten möchten, können Sie es hier in einer Zeichenfolge von 15 Zeichen oder weniger angeben.
  5. WriteResPassword: Dieses Passwort wird für die Schreibreservierung verwendet. Wenn jemand die Datei bearbeiten möchte, muss er dieses Passwort angeben, oder sie wird im schreibgeschützten Modus geöffnet.
  6. ReadOnlyRecommended: Wird hier True gesendet, wird beim Öffnen der Datei eine Meldung angezeigt, dass empfohlen wird, diese Datei im Nur-Lesen-Modus zu öffnen.
  7. CreateBackup: Wird hier True gesendet, wird eine Backup-Datei erstellt.
  8. Zugriffsmodus: Hier können Sie den Zugriffsmodus für das Speichern festlegen, z. B. exklusiv oder standardmäßig.
  9. ConflictResolution: Dieser Parameter legt fest, wie die SaveAs-Methode Konflikte löst, die beim Speichern der Datei auftreten. Eine Möglichkeit besteht beispielsweise darin, ein Dialogfeld bereitzustellen, das dem Benutzer die Entscheidung überlässt.
  10. AddToMru: Der Standardwert dafür ist False, aber Sie können True angeben, wenn Sie diese Datei zur zuletzt verwendeten Liste hinzufügen möchten.
  11. TextCodepage: Dieser Parameter wird in Excel für alle Sprachen ignoriert.
  12. TextVisualLayout: Auch dieser Parameter wird in Excel für alle Sprachen ignoriert.
  13. Local: Der Standardwert dafür ist False, wodurch die Datei in der Sprache von VBA, also US-Englisch, gespeichert wird. Wenn Sie hier ein True senden, wird die Datei in der Sprache von Microsoft Excel gespeichert.

Hinweis: Alle Parameter der SaveAs-Funktion sind optional und müssen nicht geschrieben werden.

Nachdem Sie nun die Syntax der SaveAs-Methode kennen, wollen wir uns einige Beispiele ansehen, damit Sie sie besser verstehen.

Beispiel 1: Arbeitsmappe speichern

Dieses Beispiel zeigt, wie Sie eine Arbeitsmappe mit der Methode SaveAs durch Angabe ihres Namens an einem bestimmten Ort speichern können. Der Code dafür lautet wie folgt:

Sub Example1()
Workbooks("Example.xlsm").SaveAs "D:\Example.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

Beispiel 2: Erstellen Sie eine neue Arbeitsmappe und speichern Sie sie

Hier ist ein Beispiel, das eine neue Arbeitsmappe erstellt, den Benutzer nach einem Namen fragt und diese dann speichert. Die Funktion Arbeitsmappen.Hinzufügen erstellt eine neue Arbeitsmappe und fügt sie der Liste der aktuell aktiven Arbeitsmappen hinzu.

Die Funktion GetSaveAsFileName holt sich den Dateinamen vom Benutzer und dient auch zur Angabe des Pfades. Die manuelle Auswahl des Pfads ist nützlich, wenn wir für jede Datei einen anderen Pfad wünschen.

Der Code ist unten angegeben.

Sub Example2()

Set NewBook = Workbooks.Add
Do
fName = Application.GetSaveAsFilename
'The loop will provide a check for validating the file name
Loop Until fName <> False
NewBook.SaveAs Filename:=fName

End Sub

Beispiel 3: Speichern Sie die aktive Arbeitsmappe

Dieses Beispiel zeigt, wie Sie die Variable ActiveWorkbook verwenden können, um die aktuell geöffnete Datei zu speichern. Während Sie den Dateinamen im Pfad angeben, müssen Sie ihn mit dem Operator & und der Methode ActiveWorkbook.Name verketten, wie im folgenden Code gezeigt.

Sub Example3()
ActiveWorkbook.SaveAs "D:\Example\" & ActiveWorkbook.Name & ".xlsm"
End Sub

Beispiel 4: Alle aktiven Arbeitsmappen speichern

Wenn es mehr als eine Arbeitsmappe gibt, an der Sie gerade arbeiten, können Sie immer noch die Variable ActiveWorkbook verwenden, um alle zu speichern, indem Sie eine Schleife verwenden. Dies kann mit dem folgenden Code erfolgen.

Sub Example4()

Dim Wb As Workbook
For Each Wb In Workbooks
ActiveWorkbook.SaveAs "D:\Example\" & ActiveWorkbook.Name & ".xlsm"
Next Wb

End Sub

Beispiel 5: Verwenden Sie die SaveAs-Funktionsparameter

In diesem Beispiel werden wir sehen, wie die meisten Parameter der SaveAs-Funktion angegeben werden, da sie in den vorherigen Beispielen fehlten. So können Sie sie in Code schreiben:

Sub Example5()

Set WB = Workbooks.Add
WB.SaveAs Filename:="D:Example5.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

End Sub

Abschluss

Dies fasst unsere Diskussion über die SaveAs-Funktion in VBA zusammen, die eine nützliche Programmiersprache ist, die Microsoft Office-Benutzern wertvolle Zeit spart. Wir hoffen, dass Sie die verschiedenen Möglichkeiten kennengelernt haben, wie die Methode SaveAs verwendet werden kann, um Dateien an einem bestimmten Ort zu speichern.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub