Jak znaleźć zmienne dokumentu w MS Word bez użycia makra

10

Mam dokument zawierający niektóre zmienne dokumentu i próbuję użyć tych zmiennych w dokumencie. Ale ponieważ zmienne są ustawiane przez system zewnętrzny (co nie jest dobrze udokumentowane), gram w grę w zgadywanie. Zakładam, że istnieje zmienna z „datą ostatniej aktualizacji”, a następnie zaczynam zgadywać, jak mogła zostać wywołana ta zmienna.

Czy istnieje sposób na wylistowanie wszystkich zmiennych dokumentu w dokumencie MS Word i ich wartości, aby można je było sprawdzić podczas ich używania w dokumencie? (Pracuję nad MS Office 2010)

jakiś użytkownik
źródło

Odpowiedzi:

13

Słowo ma wiele różnych typów „zmiennych”. Są rzeczy znane jako „Zmienne dokumentów”, ale są też inne rzeczy, które będę określał jako „właściwości” - spróbuję wymienić główne typy poniżej.

W programie Word jest kilka miejsc, w których można znaleźć niektóre typy właściwości, ale w przypadku prawdziwych „zmiennych” i innych typów właściwości, jeśli nie możesz użyć makr lub innego kodu, musisz rozpakować plik .docx i spójrz na różne pliki tam.

Miejsca, w których możesz zajrzeć w programie Word 2010 (tutaj nie są wyświetlane zmienne dokumentów) ...

za. W „Backstage” - spójrz na kartę Plik, opcję Informacje, a powinieneś zobaczyć niektóre właściwości wymienione po prawej stronie. Kliknij „Pokaż wszystkie właściwości” u dołu listy, aby zobaczyć więcej.

b. Na karcie Wstaw, grupie Tekst, Szybkie części-> Właściwości, powinieneś zobaczyć listę „Wbudowane właściwości + niektóre lub wszystkie właściwości wstawione przez Sharepoint, jeśli tego właśnie używasz.

do. W „Panelu informacyjnym dokumentu” (DIP). Jeśli nie widzisz tego, przejdź do menu Plik, a następnie Opcje, a następnie (powiedzmy) Pasek narzędzi Szybki dostęp. Wybierz „Wybierz polecenia” w „Wszystkie polecenia”, a następnie poszukaj „Właściwości”, wybierz je i kliknij przycisk Dodaj. Powinieneś wtedy zobaczyć ikonę na pasku narzędzi szybkiego dostępu, która ma małe białe „i” na okrągłym niebieskim tle. Kliknij to, a powinieneś zobaczyć albo wbudowane właściwości (Autor, Tytuł itp.) Lub niektóre właściwości „Typ zawartości” programu Sharepoint, jeśli korzystasz z programu SharePoint. Możesz być w stanie przełączyć między jednym z kilku widoków. Jeśli następnie klikniesz menu rozwijane w lewym górnym rogu DIP i wybierzesz „Właściwości zaawansowane”, zobaczysz okno dialogowe z wieloma zakładkami, które pokazuje

  • niektóre właściwości „wbudowane”

  • zdefiniowane przez użytkownika niestandardowe właściwości dokumentu w starym stylu.

W pozostałym zakresie prawdopodobnie będziesz musiał zajrzeć do pliku XML w .docx. Aby to zrobić, wykonaj kopię swojego dokumentu. Powiedzmy, że kopia nazywa się mydoc.docx. Zmień nazwę na mydoc.docx.zip, otwórz zip, a następnie poszukaj szeregu rzeczy, zgodnie z sugestią poniżej ...

za. true Zmienne dokumentów są przechowywane w folderze słów, w pliku settings.xml, w elemencie o nazwie w: docVars. Powinieneś zobaczyć nazwę i wartość dla każdej zmiennej. Możesz wstawić wartości zmiennych dokumentu do swojego dokumentu za pomocą pola {DOCVARIABLE variablename}.

b. Wbudowane właściwości dokumentu, w tym takie jak autor, tytuł itp. W większości przypadków wartości można wstawić do dokumentu za pomocą spcializowanych pól, takich jak {AUTHOR} lub w niektórych przypadkach {DOCPROPERTY}. Chociaż jest to nieco bałagan, istnieje standardowa lista nazw. Większość wartości można znaleźć w folderze docProps w plikach core.xml i app.xml. Jednak niektóre („Właściwości strony tytułowej”) są przechowywane, jeśli są używane, w jednym z plików „item.xml” (np. „Item1.xml” w folderze customXml.

do. zdefiniowane przez użytkownika „niestandardowe” niestandardowe właściwości dokumentu, które składają się głównie z par nazwa / wartość, których wartości można wstawić do dokumentu za pomocą pól {DOCPROPERTY}, np. {DOCPROPERTY mycustomproperty}. Są one wyświetlane w oknie dialogowym Właściwości zaawansowane ...., ale w .docx znajdują się w pliku custom.xml w folderze docProps.

re. właściwości niestandardowe w nowym stylu, znane również jako „właściwości programu Sharepoint” lub „właściwości typu zawartości”, ponieważ są one często tworzone i wypełniane z kolumn na liście programu Sharepoint. Wartości są przechowywane w „Niestandardowych częściach XML” i można je wstawiać za pomocą elementów sterujących treści, które zostały ustawione tak, aby wskazywały odpowiedni bit XML. (Word 2007 i tylko później). W .docx znajdziesz wiele „schematów” dla tych zmiennych oraz wartości zmiennych w folderze customXML, w plikach o nazwach „item1.xml”, „item2.xml” itp.

mi. wreszcie każdy programista może umieścić własne niestandardowe części XML w dokumencie Word i połączyć Kontroli treści z elementami i atrybutami w tych niestandardowych częściach XML. Nie będę próbował wchodzić w szczegóły, jak to się robi, ale znajdziesz dane w plikach item1.xml, item2.xml itp. Pod customXML. Jednak, aby znaleźć same formanty treści, ich nazwy i to, co są ze sobą połączone, zwykle trzeba zajrzeć do folderu słów, np. Document.xml, i być może jednego lub więcej „nagłówków” i „stopek”. pliki XML.

Chris
źródło
Świetna odpowiedź. Dzięki! Jedna uwaga: „b. W zakładce Wstaw, grupie Tekst, Szybkie części-> Właściwości, powinieneś zobaczyć listę„ Wbudowanych właściwości + niektórych lub wszystkich właściwości wstawionych przez Sharepoint, jeśli tego właśnie używasz ”. Wydaje się, że Quick Parts nie mają „właściwości”
użytkownik
Mój błąd - powinny to być Szybkie części -> Właściwość dokumentu
Właściwości i DocVariables wydają się dość podobne w tym, jak można ich używać w polach słów i VBA. Czy są jakieś kompromisy?
BenPen,
5

Miałem podobny problem. Niektóre narzędzia innych firm ulegały awariom i musiałem ustawić wartość zmiennej.

Jest to trochę prymitywne, ale tutaj poderwałem kod VBA, który wyświetli wszystkie zmienne w ActiveDocument.Variableskolekcji;

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

Możesz utworzyć nowe makro i wrzucić je tam, co powinno dostarczyć ci informacji. Po znalezieniu nazwy zmiennej, którą jesteś zainteresowany, możesz ją ustawić za pomocą

ActiveDocument.Variables("MyVariable") = "Value"
Steztric
źródło
2
To całkiem fajne, dzięki. Szkoda, że ​​Microsoft nie dostarczył wstępnie zapakowanego okna wyboru, które daje mu kolekcję, i pojawia się wyskakujące okno z dwiema kolumnami, które pozwala wybrać jeden lub więcej elementów z kolekcji (lub dodać nową wartość do faktyczna kolekcja), a następnie umożliwia Twojemu kodowi VBA dostęp do wybranych elementów w pod / funkcji wywołującej.
BenPen,