VBA – Arbeitsmappenname (Ermitteln, Festlegen, ohne Erweiterung)
In this Article
In diesem Tutorial zeigen wir Ihnen, wie Sie den Namen der Arbeitsmappe in VBA abrufen und festlegen können.
Wir können den Namen der aktuellen Arbeitsmappe in VBA abrufen bzw. festlegen oder alle in Excel geöffneten Arbeitsmappen durchlaufen und den Namen jeder einzelnen von ihnen mithilfe einer VBA-Schleife abrufen oder festlegen.
Den Namen der Arbeitsmappe abrufen
Um den Namen der aktuellen Arbeitsmappe zu ermitteln, müssen wir die Eigenschaft Name des Workbook-Objekts verwenden.
Sub NameDerArbeitsmappeErmitteln()
Dim strWBName As String
strWBName = ActiveWorkbook.Name
MsgBox strWBName
End Sub
Wenn wir den obigen Code ausführen, wird eine Meldungsbox mit dem Namen der aktuellen Arbeitsmappe auf dem Bildschirm angezeigt.
Um alle aktuellen Arbeitsmappen in einer Schleife zu durchlaufen und ihre Namen an Excel zurückzugeben, können wir den folgenden Code ausführen:
Sub ArbeitsmappenNamenErmitteln()
Dim wb As Workbook
For Each wb In Workbooks
ActiveCell = wb.Name
ActiveCell.Offset(1, 0).Select
Next
End Sub
Die obigen Beispiele enthalten die Erweiterung der Datei (z. B. xlsx). Wenn Sie die Erweiterung nicht mit angeben möchten, gibt es einige Methoden, mit denen Sie nur den Dateinamen der Arbeitsmappe erhalten können.
Den Namen der Arbeitsmappe ohne Erweiterung abrufen
Wir können die Funktionen LEFT und INSTR verwenden, um alle Zeichen nach dem Punkt im Dateinamen zu entfernen:
Sub ArbeitsmappenNamenErmitteln()
Dim strWBName As String
strWBName = Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
MsgBox strWBName
End Sub
Mit den Funktionen LEFT und LEN können wir 5 Zeichen vom Ende des Dateinamens entfernen:
Sub ArbeitsmappenNamenErmitteln()
Dim strWBName As String
strWBName = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5)
MsgBox strWBName
End Sub
Den Namen der Arbeitsmappe festlegen
Um den Namen einer Arbeitsmappe in VBA festzulegen, verwenden wir immer noch die Eigenschaft Name der Arbeitsmappe, allerdings können wir mit dieser Methode nicht den Namen der aktuellen Arbeitsmappe ändern. Das liegt daran, dass die Aktive Arbeitsmappe geöffnet ist und ein Dateizugriffsfehler auftreten würde. Um dies zu umgehen, können wir die Datei unter einem neuen Namen speichern und dann die alte Datei löschen.
Public Sub ArbeitsmappenNamenFestlegen()
Dim strPfad As String
Dim strNeuerName As String
Dim strAlterName As String
strAlterName = ActiveWorkbook.Name
strNeuerName = InputBox("Bitte neuen Namen für Arbeitsmappe eingeben")
strPfad = ActiveWorkbook.Path
ActiveWorkbook.SaveAs strPfad & "/" & strNeuerName
Kill strPfad & "/" & strAlterName
End Sub
Um eine Arbeitsmappe, die nicht geöffnet ist, umzubenennen, können wir die Methode Name verwenden.
Public Sub ArbeitsmappeUmbenennen()
Name "C:\Data\MeineDatei.xlsx" As "C:\Data\MeineNeueDatei.xlsx"
End Sub