Come trovare le variabili del documento in MS Word senza usare una macro


10

Ho un documento con alcune variabili del documento e sto provando a usare quelle variabili nel documento. Ma dal momento che le variabili sono impostate da un sistema esterno (che non è ben documentato) sto giocando a indovinare. Presumo che esista una variabile con "ultima data di revisione" e quindi inizio a indovinare come quella variabile avrebbe potuto essere chiamata.

C'è un modo per elencare tutte le variabili del documento in un documento MS Word e i loro valori in modo da poterle cercare quando le si utilizza nel documento? (Sto lavorando su MS Office 2010)

Risposte:


13

Word ha diversi tipi di "variabile", Ci sono cose conosciute come "Variabili del documento", ma ci sono altre cose che chiamerò "proprietà" - Proverò ad elencare i tipi principali di seguito.

Ci sono alcuni punti in Word che puoi cercare per trovare alcuni tipi di proprietà, ma per vere "variabili" e altri tipi di proprietà, se non puoi usare macro o altro codice, dovrai decomprimere il file .docx e guarda i vari file lì dentro.

Luoghi che puoi consultare in Word 2010 (qui non vengono visualizzate variabili del documento) ...

un. In "Backstage" - guarda la scheda File, l'opzione Informazioni e dovresti vedere alcune proprietà elencate a destra. Fai clic su "Mostra tutte le proprietà" nella parte inferiore dell'elenco e potresti vedere di più.

b. Nella scheda Inserisci, gruppo Testo, Parti rapide-> Proprietà, dovresti visualizzare un elenco di "Proprietà integrate + alcune o tutte le proprietà inserite da Sharepoint se è quello che stai utilizzando.

c. Nel "Pannello informativo del documento" (DIP). Se non lo vedi, vai nel menu File, quindi su Opzioni, quindi (ad esempio) Barra di accesso rapido. Seleziona "Scegli comandi" in "Tutti i comandi", quindi cerca "Proprietà", selezionalo e fai clic sul pulsante Aggiungi. Dovresti quindi vedere un'icona nella barra degli strumenti Accesso rapido che ha una piccola "i" bianca su uno sfondo blu circolare. Fai clic su di esso e dovresti visualizzare alcune proprietà predefinite (Autore, Titolo ecc.) O alcune proprietà "Tipo di contenuto" di Sharepoint, se stai utilizzando SharePoint. Potresti essere in grado di passare da una delle diverse viste all'interno. Se poi fai clic sul menu a discesa in alto a sinistra del DIP e scegli "Proprietà avanzate", vedrai una finestra di dialogo multi-tab che mostra

  • alcune proprietà "integrate"

  • Proprietà del documento personalizzato "definito dall'utente" vecchio stile.

Per tutto il resto, probabilmente dovrai cercare l'XML nel .docx. Per farlo, crea una copia del tuo documento. Diciamo che la copia si chiama mydoc.docx. Rinominalo in mydoc.docx.zip, apri la zip, quindi cerca una serie di cose, come suggerito di seguito ...

un. Le variabili del documento true sono archiviate nella cartella delle parole, in settings.xml, in un elemento chiamato w: docVars. Dovresti vedere un nome e un valore per ogni variabile. È possibile inserire i valori delle variabili del documento nel documento utilizzando un campo {DOCVARIABLE variablename}.

b. Proprietà integrate del documento, inclusi elementi quali autore, titolo, ecc. Nella maggior parte dei casi, i valori possono essere inseriti nel documento utilizzando campi speciali come {AUTORE] o, in alcuni casi, {DOCPROPERTY}. Sebbene sia un po 'disordinato, esiste un elenco standard di nomi. Puoi trovare la maggior parte dei valori nella cartella docProps nei file core.xml e app.xml. Tuttavia, alcuni (le "Proprietà della pagina di copertina") sono memorizzati, se utilizzati, in uno dei file "item.xml" (ad es. "Item1.xml" nella cartella customXml.

c. proprietà del documento personalizzato "definito dall'utente" vecchio stile che consistono principalmente in coppie nome / valore i cui valori possono essere inseriti nel documento utilizzando i campi {DOCPROPERTY}, ad esempio {DOCPROPERTY mycustomproperty}. Questi vengono visualizzati nella finestra di dialogo Proprietà avanzate ...., ma in .docx si trovano nel file custom.xml nella cartella docProps.

d. proprietà personalizzate di nuovo stile, note anche come "proprietà di Sharepoint" o "proprietà del tipo di contenuto", poiché spesso vengono create e popolate da colonne in un elenco di Sharepoint. I valori sono memorizzati in "Parti XML personalizzate" e possono essere inseriti utilizzando i controlli del contenuto che sono stati impostati in modo da puntare al bit XML pertinente. (Solo Word 2007 e versioni successive). Nel .docx, troverai una serie di "schemi" per queste variabili e i valori delle variabili nella cartella customXML, nei file denominati "item1.xml", "item2.xml" ecc.

e. infine, qualsiasi sviluppatore può inserire le proprie parti XML personalizzate in un documento Word e collegare i controlli del contenuto agli elementi e agli attributi in quelle parti XML personalizzate. Non tenterò di entrare nei dettagli di come viene fatto, ma troverai i dati nei file item1.xml, item2.xml ecc. In customXML. Tuttavia, per trovare i controlli dei contenuti stessi, i loro nomi e anche quelli a cui sono connessi, in genere è necessario cercare nella cartella delle parole, ad esempio document.xml, e forse una o più delle "intestazioni" e "piè di pagina". file xml.


Bella risposta. Grazie! Una nota: "b. Nella scheda Inserisci, gruppo Testo, Parti rapide-> Proprietà, dovresti vedere un elenco di" Proprietà integrate + alcune o tutte le proprietà inserite da Sharepoint se è quello che stai utilizzando. "Nella mia configurazione Quick Parts non sembra avere "Proprietà"
alcuni utenti

Il mio errore - che dovrebbe essere Quick Parts-> Proprietà documento

Proprietà e DocVariables sembrano abbastanza simili nel modo in cui puoi usarli nei campi di parole e VBA. Ci sono dei compromessi?
BenPen,

5

Stavo avendo un problema simile. Alcuni strumenti di terze parti si stavano arrestando in modo anomalo e avevo bisogno di impostare un valore variabile.

È un po 'rozzo ma ecco un po' di codice VBA che ho messo al bando che elencherà tutte le variabili nella ActiveDocument.Variablesraccolta;

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

Puoi creare una nuova macro e scaricarla lì, che dovrebbe darti le informazioni. Quando hai trovato il nome della variabile che ti interessa, puoi impostarlo con

ActiveDocument.Variables("MyVariable") = "Value"

2
È fantastico, grazie. È un peccato che Microsoft non abbia fornito una sorta di finestra di selezione preconfezionata che gli dai una raccolta e ottieni una finestra pop-up a due colonne che ti consente di selezionare uno o più elementi dalla raccolta (o aggiungere un nuovo valore a la raccolta effettiva) e quindi consente al tuo codice VBA di accedere agli elementi selezionati nella sub / funzione chiamante.
BenPen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.