So finden Sie Dokumentvariablen in MS Word ohne Verwendung eines Makros

9

Ich habe ein Dokument mit einigen Dokumentvariablen und versuche, diese Variablen im Dokument zu verwenden. Da die Variablen jedoch von einem externen System festgelegt werden (was nicht gut dokumentiert ist), spiele ich ein Ratespiel. Ich gehe davon aus, dass eine Variable mit dem Datum der letzten Überarbeitung vorhanden ist, und errate dann, wie diese Variable möglicherweise aufgerufen wurde.

Gibt es eine Möglichkeit, alle Dokumentvariablen in einem MS Word-Dokument und ihre Werte aufzulisten, damit sie bei der Verwendung im Dokument nachgeschlagen werden können? (Ich arbeite an MS Office 2010)

einige Benutzer
quelle

Antworten:

13

Word hat eine Reihe verschiedener Arten von "Variablen". Es gibt Dinge, die als "Dokumentvariablen" bekannt sind, aber es gibt andere Dinge, die ich als "Eigenschaften" bezeichnen werde. Ich werde versuchen, die Haupttypen unten aufzulisten.

Es gibt einige Stellen in Word, an denen Sie nach bestimmten Arten von Eigenschaften suchen können. Wenn Sie jedoch für echte "Variablen" und andere Arten von Eigenschaften keine Makros oder anderen Code verwenden können, müssen Sie die DOCX-Datei und entpacken Schauen Sie sich die verschiedenen Dateien dort an.

Orte, die Sie in Word 2010 suchen können (hier werden keine Dokumentvariablen angezeigt) ...

ein. Schauen Sie in "Backstage" auf die Registerkarte "Datei", Option "Info", und Sie sollten einige Eigenschaften auf der rechten Seite sehen. Klicken Sie unten in der Liste auf "Alle Eigenschaften anzeigen". Möglicherweise werden weitere angezeigt.

b. Auf der Registerkarte Einfügen, Gruppe Text, Quick Parts-> Eigenschaften sollte eine Liste mit "Eingebaute Eigenschaften + einige oder alle von Sharepoint eingefügten Eigenschaften angezeigt werden, wenn Sie diese verwenden.

c. Im "Document Information Panel" (DIP). Wenn Sie das nicht sehen, gehen Sie in das Menü Datei, dann zu Optionen und dann (sagen wir) zur Symbolleiste für den Schnellzugriff. Wählen Sie unter "Alle Befehle" die Option "Befehle auswählen", suchen Sie nach "Eigenschaften", wählen Sie sie aus und klicken Sie auf die Schaltfläche "Hinzufügen". In der Symbolleiste für den Schnellzugriff sollte dann ein Symbol mit einem kleinen weißen "i" vor einem kreisförmigen blauen Hintergrund angezeigt werden. Klicken Sie darauf, und Sie sollten entweder einige integrierte Eigenschaften (Autor, Titel usw.) oder einige Sharepoint-Eigenschaften "Inhaltstyp" sehen, wenn Sie SharePoint verwenden. Möglicherweise können Sie dort zwischen mehreren Ansichten wechseln. Wenn Sie dann auf das Dropdown-Menü oben links im DIP klicken und "Erweiterte Eigenschaften" auswählen, wird ein Dialogfeld mit mehreren Registerkarten angezeigt

  • einige "eingebaute" Eigenschaften

  • "Benutzerdefinierte" benutzerdefinierte Dokumenteigenschaften im alten Stil.

Für alles andere müssen Sie wahrscheinlich in der XML in der .docx suchen. Erstellen Sie dazu eine Kopie Ihres Dokuments. Angenommen, die Kopie heißt mydoc.docx. Benennen Sie das in mydoc.docx.zip um, öffnen Sie die Zip-Datei und suchen Sie nach einer Reihe von Dingen, wie unten vorgeschlagen ...

ein. true Dokumentvariablen werden im Word-Ordner in settings.xml in einem Element namens w: docVars gespeichert. Sie sollten für jede Variable einen Namen und einen Wert sehen. Sie können die Werte von Dokumentvariablen mithilfe eines Felds {DOCVARIABLE Variablenname} in Ihr Dokument einfügen.

b. Eingebaute Dokumenteigenschaften, einschließlich Autor, Titel usw. In den meisten Fällen können die Werte mithilfe von speziellen Feldern wie {AUTHOR} oder in einigen Fällen mit {DOCPROPERTY} -Feldern in das Dokument eingefügt werden. Obwohl es ein bisschen chaotisch ist, gibt es eine Standardliste von Namen. Sie finden die meisten Werte im Ordner docProps in den Dateien core.xml und app.xml. Einige (die "Deckblatzeigenschaften") werden jedoch, falls verwendet, in einer der "item.xml" -Dateien gespeichert (z. B. "item1.xml" im Ordner "customXml").

c. "benutzerdefinierte" benutzerdefinierte Dokumenteigenschaften im alten Stil, die hauptsächlich aus Name / Wert-Paaren bestehen, deren Werte mithilfe von {DOCPROPERTY} -Feldern in das Dokument eingefügt werden können, z. B. {DOCPROPERTY mycustomproperty}. Diese werden im Dialogfeld Erweiterte Eigenschaften .... angezeigt, in der DOCX-Datei jedoch in der Datei custom.xml im Ordner docProps.

d. Benutzerdefinierte Eigenschaften neuen Stils, auch als "Sharepoint-Eigenschaften" oder "Inhaltstyp-Eigenschaften" bezeichnet, da sie häufig aus Spalten in einer Sharepoint-Liste erstellt und ausgefüllt werden. Die Werte werden in "Benutzerdefinierte XML-Teile" gespeichert und können mithilfe von Inhaltssteuerelementen eingefügt werden, die so eingerichtet wurden, dass sie auf das relevante XML-Bit verweisen. (Nur Word 2007 und höher). In der DOCX finden Sie eine Reihe von "Schemas" für diese Variablen und die Werte der Variablen im Ordner "customXML" in den Dateien "item1.xml", "item2.xml" usw.

e. Schließlich kann jeder Entwickler seine eigenen benutzerdefinierten XML-Teile in ein Word-Dokument einfügen und Inhaltssteuerelemente mit Elementen und Attributen in diesen benutzerdefinierten XML-Teilen verbinden. Ich werde nicht versuchen, auf die Details der Vorgehensweise einzugehen, aber Sie finden die Daten in den Dateien item1.xml, item2.xml usw. unter customXML. Um jedoch die Inhaltssteuerelemente selbst, ihre Namen und deren Verbindung zu finden, müssen Sie normalerweise im Wortordner nach z. B. document.xml und möglicherweise in einem oder mehreren der "Kopf-" und "Fußzeilen" suchen. XML-Dateien.

Chris
quelle
Gute Antwort. Vielen Dank! Ein Hinweis: "b. Auf der Registerkarte Einfügen, Textgruppe, Quick Parts-> Eigenschaften sollte eine Liste mit" Eingebauten Eigenschaften + einige oder alle von Sharepoint eingefügten Eigenschaften, wenn Sie diese verwenden "angezeigt werden. In meinem Setup Quick Parts scheint keine "Eigenschaften" zu haben
einige Benutzer
Mein Fehler - das sollte Quick Parts-> Document Property sein
Eigenschaften und DocVariables scheinen ziemlich ähnlich zu sein, wie Sie sie in Wortfeldern und VBA verwenden können. Gibt es irgendwelche Kompromisse?
BenPen
5

Ich hatte ein ähnliches Problem. Eine Toolbox von Drittanbietern stürzte ab und ich musste einen variablen Wert festlegen.

Es ist ein bisschen grob, aber hier ist ein VBA-Code, den ich aufgeschlagen habe und der alle Variablen in der ActiveDocument.VariablesSammlung auflistet.

Public Sub ListAllVariables()
    Dim V As Variable, S As String
    For Each V In ActiveDocument.Variables
        S = S & V.Name & vbTab & V.Value & vbNewLine
    Next V
    MsgBox S
End Sub

Sie können ein neues Makro erstellen und dort ablegen, das Ihnen die Informationen geben soll. Wenn Sie den Namen der Variablen gefunden haben, an der Sie interessiert sind, können Sie ihn mit festlegen

ActiveDocument.Variables("MyVariable") = "Value"
Steztric
quelle
1
Das ist ziemlich cool, danke. Es ist schade, dass Microsoft kein vorgefertigtes Auswahlfenster bereitgestellt hat, in dem Sie ihm eine Sammlung geben, und Sie erhalten ein zweispaltiges Popup-Fenster, in dem Sie ein oder mehrere Elemente aus der Sammlung auswählen (oder einen neuen Wert hinzufügen können) die tatsächliche Sammlung) und ermöglicht dann Ihrem VBA-Code den Zugriff auf die ausgewählten Elemente in der aufrufenden Unterfunktion.
BenPen