Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Name der aktuellen Arbeitsmappe ermitteln

Name der aktuellen Arbeitsmappe ermitteln
23.10.2006 09:17:01
Stefan
Hallo liebe Excel Gemeinde,
ich programmiere unter Visual Basic 6 eine Anwendung, die einige neue Excel Tabellen öffnet und diese mit Zahlenwerten füllt. Ich möchte nun den Namen der aktuell geöffneten Arbeitsmappe mir anzeigen lassen. Da dann diese per Code geschlossen werden soll.
Meistens wird es die Arbeitsmappe "Mappe1" sein. Sollte der Anwender jedoch die ander Arbeitsmappen von anderen Anwendungen noch zusätzlich geöffnet haben, dann würde die falsche geschlossen werden.
Kann mir hier jemand helfen?
Danke und Gruß,
Stefan
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Name der aktuellen Arbeitsmappe ermitteln
23.10.2006 09:26:56
Gert
Hallo Stefan,
wird jeweils eine neue "Mappe" (Datei) erstellt oder nur eine "Tabelle"?
Du vergibst am besten direkt beim erstellen der Mappe einen Namen für diese.
mfg
Gert
AW: Name der aktuellen Arbeitsmappe ermitteln
23.10.2006 09:43:06
Stefan
Hallo Gert,
ja es wird immer eine Datei erzeugt.
wie kann ich mir den Namen der Datei in eine Variable einlesen lassen?
Danke, Stefan
Anzeige
AW: Name der aktuellen Arbeitsmappe ermitteln
23.10.2006 10:35:13
fcs
Hallo Gert,
ich hab keine Ahnung, ob bzw. wie du unter VB6 auf Excel-VBA-Eigenschaften und Methoden zugreifen kannst.
Unter Excel-VBA sieht der Code so aus:

Sub WorkbookName()
Dim wbName As String
wbName = Application.ActiveWorkbook.Name
MsgBox wbName
End Sub

Solange nur mit einer Excel-Instanz gearbeitet wird gibt es keine Probleme mit doppelten Mappennamen, da Excel dies nicht zuläßt. Erst wenn mehrere Instanzen geöffnet werden könnten mehrere Mappen den gleichen Namen haben.
Gruß
Franz
Anzeige
AW: Name der aktuellen Arbeitsmappe ermitteln
23.10.2006 11:05:27
Stefan
Hallo Franz,
danke.
Ich denke, dass der Code auch funktionieren wird, da die Syntax ja mehr oder weniger gleich sind.
Mein Tipp: Wenn ich in Visual Basic mit Excel arbeite (was bei mir oft der Fall ist) dann erstelle ich mir ein Makro von dem was ich gerne in VB umsetzen will und kopiere dann einfach den Code des Makro von VBA raus und schon läufts auch in VB.
Danke nochmals,
Stefan
Anzeige
ActiveWorkbook.Name ----- owT
23.10.2006 10:34:44
Jens
Gruß
Jens
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Aktuellen Namen der Arbeitsmappe in Excel ermitteln


Schritt-für-Schritt-Anleitung

Um den Namen der aktuell geöffneten Arbeitsmappe in Excel VBA zu ermitteln, kannst Du folgenden Code verwenden:

Sub WorkbookName()
    Dim wbName As String
    wbName = Application.ActiveWorkbook.Name
    MsgBox wbName
End Sub
  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere den obigen Code in das Modul.
  4. Schließe den VBA-Editor und kehre zu Excel zurück.
  5. Führe das Makro WorkbookName aus, um den Namen der aktiven Arbeitsmappe anzuzeigen.

Der Code verwendet Application.ActiveWorkbook.Name, um den Namen der aktuellen Arbeitsmappe auszulesen. Dies ist eine einfache Methode, um den excel vba workbook name zu bekommen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt."

    • Lösung: Stelle sicher, dass eine Arbeitsmappe aktiv ist, wenn Du das Makro ausführst. Falls keine Arbeitsmappe geöffnet ist, kann der Code nicht auf ActiveWorkbook zugreifen.
  • Fehler: "Das Makro kann nicht ausgeführt werden."

    • Lösung: Überprüfe die Makrosicherheitseinstellungen in Excel. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center und aktiviere die Makros.

Alternative Methoden

Neben der Verwendung von Application.ActiveWorkbook.Name gibt es auch andere Möglichkeiten, den Namen einer Arbeitsmappe zu erhalten:

  1. Verwendung von ThisWorkbook:

    MsgBox ThisWorkbook.Name

    Hierbei wird der Name der Arbeitsmappe angezeigt, in der das Makro gespeichert ist.

  2. Verwendung von ActiveWorkbook direkt:

    MsgBox ActiveWorkbook.Name

    Dies funktioniert, solange eine Arbeitsmappe aktiv ist.


Praktische Beispiele

Um den Namen der Arbeitsmappe in verschiedenen Szenarien zu verwenden, kannst Du die folgenden Beispiele ausprobieren:

  • Speichern des Arbeitsmappennamens in einer Variablen:

    Sub SaveWorkbookName()
       Dim wbName As String
       wbName = ActiveWorkbook.Name
       ' Weitere Aktionen mit wbName
    End Sub
  • Überprüfung des Arbeitsmappennamens:

    Sub CheckWorkbookName()
       If ActiveWorkbook.Name = "Mappe1.xlsx" Then
           MsgBox "Du arbeitest mit der Standardmappe!"
       End If
    End Sub

Tipps für Profis

  • Nutze ThisWorkbook immer dann, wenn Du sicherstellen möchtest, dass Du den Namen der Arbeitsmappe verwendest, in der der Code ausgeführt wird, unabhängig davon, welche Arbeitsmappe gerade aktiv ist.

  • Wenn Du mit mehreren Excel-Instanzen arbeitest, sei vorsichtig, da ActiveWorkbook möglicherweise nicht die Arbeitsmappe ist, die Du erwartest. In solchen Fällen ist es besser, die Arbeitsmappen explizit zu referenzieren.

  • Um den vba workbook name effizient auszulesen, kombiniere die Namensabfrage mit anderen Funktionen wie If-Bedingungen, um dynamisch auf verschiedene Arbeitsmappen zu reagieren.


FAQ: Häufige Fragen

1. Wie kann ich den Namen einer geschlossenen Arbeitsmappe erhalten? Du kannst den Namen einer geschlossenen Arbeitsmappe nicht direkt abrufen. Du müsstest den Namen speichern, bevor die Arbeitsmappe geschlossen wird.

2. Was ist der Unterschied zwischen ActiveWorkbook und ThisWorkbook? ActiveWorkbook bezieht sich auf die derzeit aktive Arbeitsmappe, während ThisWorkbook die Arbeitsmappe bezeichnet, in der das Code-Modul gespeichert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige