Danushka: Dateiname mit VBA auslesen

Wie kann ich den Dateinamen des Dokumentes auslesen und in eine Variable speichern? Also ich arbeite mit Word und brauche das da um danach den Dateinamen in einem Textfeld auszugeben, habe in der Hilfe nichts gescheites gefunden

Danushka

  1. Hallo,

    Wie kann ich den Dateinamen des Dokumentes auslesen und in eine Variable speichern? Also ich arbeite mit Word und brauche das da um danach den Dateinamen in einem Textfeld auszugeben, habe in der Hilfe nichts gescheites gefunden

    Sub dateiname()
        Dim dname As String
        dname = ActiveDocument.Name
        MsgBox (dname)
    End Sub

    Hilfe: siehe Microsoft Word Visual Basic - Microsoft Word Visual Basic-Referenz - Objekte Document-Objekt

    Aber, wenn einfach nur der aktuelle Dateiname irgendwo im Dokument stehen soll, warum nicht einfach:

    Einfügen - Feld - Dateiname

    {DATEINAME  \* FORMATVERBINDEN}

    Hilfe: siehe Microsoft Word Hilfe - Einfügen - Feld

    viele Grüße

    Axel

    1. Danke schonmal, aber wie stehts, wenn ich anstatt den dateinamen WORDDATEI.DAT nur WORDDATEI haben möchte? Dann wirds schon schwieriger, ich versuche dies gerade mit einem Array, aber ich kann den Dokumentnamen nicht auf ein Array verteilen, geht irgendwie nicht
      danushka

      1. Hallo,

        ein Array brauchst Du dafür doch gar nicht. Schneide doch einfach mit Left() und Len() die letzten vier Zeichen ab. Also, wenn Du den Dateinamen an die Variable strDName übergeben hättest, z. B.

        strDName = Left(strDName, Len(strDName)-4)

        Schau Dir in der VB / VBA-Hilfe mal die Zeichenkettenfunktionen an.

        Gruß
        Susanne

      2. Hallo,

        Danke schonmal, aber wie stehts, wenn ich anstatt den dateinamen WORDDATEI.DAT nur WORDDATEI haben möchte?

        Sub dateiname()
            Dim dateiname As String
            Dim docname As String
            dateiname = ActiveDocument.Name
            'Die letzten 4 Zeichen sind der Typ (.doc)
            docname = Left(dateiname, Len(dateiname) - 4)
            MsgBox (docname)
        End Sub

        Dann wirds schon schwieriger, ich versuche dies gerade mit einem Array, aber ich kann den Dokumentnamen nicht auf ein Array verteilen, geht irgendwie nicht

        Ja, das Konzept hinter VisualBasic for Applications (VBA) ist etwas anders als hinter VBScript, Java und JavaScript. Eine Funktion wie
        Split(Expression, Delimiter, Count, Compare)
        gibt es zwar in VBScript, aber nicht in VBA, jedenfalls nicht bis Office 97. Es könnte sein, dass die neueren Office-Systeme das können. Einfach mal nach split in der Hilfe suchen.

        viele Grüße

        Axel