Gibt es einen Word-Feldcode für den Ordnerpfad?

4

In MS Word können Sie einen Feldcode einfügen, um den Namen der Dokumentdatei mit der Option anzuzeigen, den vollständigen Pfad einzuschließen oder nicht.

Ich möchte nur den Ordnerpfad ohne den Dateinamen einfügen.

Makros sind keine Option.

Kann das gemacht werden?

Gibt es einen alternativen Feldcode?

Gibt es einen magischen undokumentierten Schalter im Feldcode FILENAME? (Microsoft hat das schon einmal gemacht!)

Shevek
quelle
Ich habe meine Antwort bearbeitet, um eine mögliche Lösung hinzuzufügen. Sind Makros in der Ausgabedatei nicht oder überhaupt nicht verfügbar? Ich denke, Sie müssen irgendwo ein Makro verwenden, aber meine Lösung würde bedeuten, dass die Datei, die gespeichert wird, makrofrei ist, während die Person, die das Dokument erstellt, über ein Makro verfügt. Ist das eine akzeptable Lösung?
Mokubai
1
Makros sind nicht erlaubt - Unternehmensrichtlinien
Shevek
Ich habe eine Weile darüber nachgedacht, was man mit den Feldfunktionen in Word machen kann, und es gibt nichts Besseres als die Vielseitigkeit, darüber nachzudenken, ohne ein Makro oder eine andere intelligente Programmiersprache zu verwenden. Nach dem, was ich gegoogelt habe, kann ich keine Schalter oder Möglichkeiten finden, die kein Makro beinhalten. Mit der Zeit könnte ich wahrscheinlich ein bisschen Python-Code schreiben, der ein Verzeichnis voller Dateien durchquert und den richtigen Pfad in die Fußzeile einfügt, aber in Word würde er niemals vollständig automatisiert sein. Wenn jemand den Weg findet, wäre ich neugierig ...
Mokubai
Unternehmenspolitik? Das muss die Produktivität wirklich beeinträchtigen!
Marcusw

Antworten:

3

Ich spiele immer noch damit herum, da es vernünftigerweise so scheint, als ob ich damit rechnen könnte ... aber bisher habe ich nur durch den ziemlich üblen Betrug gefunden, ein Dateinamenfeld mit path und einzufügen Wenden Sie dann eine weiße Schriftfarbe auf den Text an (dh den Dateinamen selbst), und Sie erhalten nur den Pfad und einen Block unsichtbaren Texts.

Das Problem ist, dass dies mit der Formatierung zu schaffen machen könnte und sehr klobig ist.

- = EDIT = -

Etwas weniger klobige Lösung ...

Wenn es Ihnen nichts ausmacht, ein Makro in Ihrer normal.dotm und eine versteckte Variable in Ihrem Dokument zu haben, können Sie dieses Makro möglicherweise verwenden und eine Schaltfläche auf Ihrem Schnellzugriff festlegen, um es auszuführen ... Ich habe es versucht und es funktioniert auf einem makrofreien Dokument, so dass das Dokument selbst keine Makros benötigt, um diese Methode zu verwenden. Ich würde dies in meine Vorlage "normal.dotm" einfügen.

Sub updatePath()
'
' updatePath Macro
'
'
Dim myPath As String
myPath = ActiveDocument.Path
If myPath = "" Then
    'do nothing as the document has no path... needs to be saved first
Else
    If ActiveDocument.Variables.Count = 0 Then
        ActiveDocument.Variables.Add Name:="myPath", Value:=myPath
    Else
        i = 1
        Do While i < (ActiveDocument.Variables.Count + 1)
            If ActiveDocument.Variables.Item(i).Name = "myPath" Then
                ActiveDocument.Variables.Item(i).Value = myPath
            End If
            i = i + 1
        Loop
    End If
End If

End Sub

Und dann fügen Sie einfach einen Feldcode hinzu

DOCVARIABLE myPath

Was, wenn es nach dem Ausführen des obigen Makros aktualisiert wird, genau das tut, was Sie wollten. Zugegeben ist es zwei oder drei Klicks und nicht nur ein einfaches Update, aber es bedeutet , dass die exportierten Dokument den richtigen Feldtyp und nur Menschen mit diesem Makro get wird zu sagen , wo das Dokument sollte gespeichert werden :)

Mokubai
quelle
1
Ich mag das Denken, aber ich stimme zu, es ist kludgy!
Shevek
3

Leider ist dies mit dem Feld FILENAME ohne Makro nicht möglich. Das Feld FILENAME bietet keine Option, den Namen der Datei wegzulassen.

Jedenfalls ist hier ein Makro, um den Pfad der Datei ohne den Dateinamen für diejenigen einzufügen, die ihn möglicherweise benötigen.

Sub InsertPath ()
  Dim sPath As String

  sPath = ActiveDocument.Path
  Wenn sPath = "" Dann
    MsgBox "Sie müssen das Dokument speichern, bevor Sie dieses Makro ausführen können.", _
           vbOKOnly, "Dokument nicht gespeichert"
  Sonst
    sPath = sPath & Application.PathSeparator
    Selection.TypeText (sPath)
  EndIf
End Sub
Jawa
quelle
1
Ich kann wirklich nicht glauben, dass es keinen eingebauten Feldcode dafür gibt, zum Beispiel FILEPATH oder sogar einen weiteren Schalter für FILENAME. Schlecht auf MS
Shevek