Makro kullanmadan MS Word'de belge değişkenleri nasıl bulunur


10

Bazı belge değişkenleri ile belge var ve bu değişkenleri belgede kullanmaya çalışıyorum. Ama değişkenler harici bir sistem tarafından ayarlandığından (iyi belgelenmemiş) bir tahmin oyunu oynuyorum. "Son revizyon tarihi" ile bir değişken var ve daha sonra bu değişkenin çağrılmış olabilir tahmin etmeye başlamak varsayalım.

MS Word belgesindeki tüm belge değişkenlerini ve değerlerini listelemenin bir yolu var mı? (MS Office 2010 üzerinde çalışıyorum)

Yanıtlar:


13

Word "değişken" farklı türleri vardır, "Belge Değişkenleri" olarak bilinen şeyler vardır, ama ben "özellikleri" olarak adlandırılacak başka şeyler vardır - Ben aşağıdaki ana türleri listelemek çalışacağım.

Word'de bazı özellik türlerini bulmak için bakabileceğiniz birkaç yer vardır, ancak gerçek "değişkenler" ve diğer özellik türleri için, makroları veya başka bir kodu kullanamıyorsanız, .docx dosyasını açmanız ve içindeki çeşitli dosyalara bakın.

Word 2010'da bakabileceğiniz yerler (burada Belge Değişkeni görüntülenmez) ...

a. "Backstage" de - Dosya sekmesine, Bilgi seçeneğine bakın ve sağda listelenen bazı özellikleri görmelisiniz. Listenin altındaki "Tüm Özellikleri Göster" i tıklayın, daha fazlasını görebilirsiniz.

b. Ekle sekmesinde, Metin grubu, Hızlı Parçalar -> Özellikler bölümünde, "Yerleşik özellikler + Sharepoint tarafından eklenen özelliklerin bazıları veya tümü, kullandığınız buysa bir liste görmeniz gerekir.

c. "Belge Bilgi Panelinde" (DIP). Bunu görmüyorsanız, Dosya menüsüne ve ardından Seçenekler'e gidin, ardından (diyelim) Hızlı Erişim Araç Çubuğu. "Tüm Komutlar" altında "Komut Seç" i seçin, ardından "Özellikler" i bulun, seçin ve Ekle düğmesini tıklayın. Daha sonra Hızlı Erişim araç çubuğunda, dairesel mavi arka plana karşı küçük beyaz bir "i" bulunan bir simge görmelisiniz. Bunu tıklatın ve SharePoint kullanıyorsanız bazı yerleşik özellikleri (Yazar, Başlık vb.) Veya Sharepoint "İçerik türü" özelliklerini görmeniz gerekir. Oradaki birkaç görünümden biri arasında geçiş yapabilirsiniz. Daha sonra DIP'nin sol üst tarafındaki açılır menüyü tıklar ve "Gelişmiş Özellikler" i seçerseniz, aşağıdakileri gösteren çok sekmeli bir iletişim kutusu görürsünüz.

  • bazı "yerleşik" özellikler

  • eski stil "kullanıcı tanımlı" Özel Belge Özellikleri.

Diğer her şey için, muhtemelen .docx içindeki XML'ye bakmanız gerekir. Bunu yapmak için belgenizin bir kopyasını oluşturun. Diyelim ki kopyanın adı mydoc.docx. Bunu mydoc.docx.zip olarak yeniden adlandırın, zip dosyasını açın, ardından aşağıda önerildiği gibi birkaç şey arayın ...

a. true Document Değişkenleri word klasöründe, settings.xml dosyasında w: docVars adlı bir öğede saklanır. Her değişken için bir ad ve değer görmelisiniz. {DOCVARIABLE değişken_adı} alanını kullanarak Belge Değişkenlerinin değerlerini belgenize ekleyebilirsiniz.

b. Yazar, başlık vb. Gibi yerleşik belge özellikleri Çoğu durumda, değerler {AUTHOR} gibi özel alanlar veya bazı durumlarda {DOCPROPERTY} alanları kullanılarak belgeye eklenebilir. Her ne kadar biraz dağınık olsa da, standart bir isim listesi var. Değerlerin çoğunu core.xml ve app.xml dosyalarındaki docProps klasöründe bulabilirsiniz. Ancak, bazı ("Kapak Sayfası Özellikleri"), kullanılıyorsa, customXml klasöründeki "item.xml" dosyalarından birinde (örn. "İtem1.xml") saklanır.

c. değerleri {DOCPROPERTY} alanları, örneğin {DOCPROPERTY mycustomproperty} kullanılarak belgeye eklenebilen ad / değer çiftlerinden oluşan eski stil "kullanıcı tanımlı" özel belge özellikleri. Bunlar Gelişmiş Özellikler .... iletişim kutusunda görüntülenir, ancak .docx dosyasında docProps klasöründeki custom.xml dosyasında bulunurlar.

d. "Sharepoint özellikleri" veya "içerik türü özellikleri" olarak da bilinen yeni stil özel özellikleri, genellikle bir Sharepoint listesindeki sütunlardan oluşturulur ve doldurulur. Değerler "Özel XML Parçaları" nda saklanır ve ilgili XML bitini gösterecek şekilde ayarlanmış İçerik Denetimleri kullanılarak eklenebilir. (Yalnızca Word 2007 ve üstü). .Docx dosyasında, bu değişkenler için bir dizi "şema" ve "item1.xml", "item2.xml" vb. Dosyalarda customXML klasöründeki değişkenlerin değerlerini bulacaksınız.

e. Son olarak, herhangi bir geliştirici kendi özel XML parçalarını bir Word belgesine yerleştirebilir ve İçerik Denetimlerini bu özel XML parçalarındaki öğelere ve niteliklere bağlayabilir. Bunun nasıl yapıldığının ayrıntılarına girmeye çalışmayacağım, ancak verileri custom1.ML altında item1.xml, item2.xml vb. Dosyalarda bulacaksınız. Bununla birlikte, içerik denetimlerinin kendilerini, adlarını ve nelerin birbirine bağlı olduğunu bulmak için, genellikle document.xml adresindeki ve belki de "üstbilgi" ve "altbilgi" nin bir veya daha fazlasındaki kelime klasörüne bakmanız gerekir. xml dosyaları.


Mükemmel cevap. Teşekkürler! Bir not: "b. Ekle sekmesinde, Metin grubu, Hızlı Parçalar-> Özellikler listesinde," Yerleşik özellikler + kullandığınız şeyse Sharepoint tarafından eklenen bazı özellikler veya tüm özellikler "listesini görmelisiniz. Quick Parts'da "Özellikler" yok gibi görünüyor
bazı kullanıcılar

Benim

Özellikler ve DocVariables, bunları kelime alanlarında ve VBA'da nasıl kullanabileceğiniz konusunda oldukça benzer görünüyor. Tutarsızlık var mı?
BenPen

5

Benzer bir sorun yaşıyordum. Bazı üçüncü taraf araç kutuları çöküyordu ve değişken bir değer ayarlamam gerekiyordu.

Biraz kaba ama burada tüm VBA kodu ActiveDocument.Variableskoleksiyondaki tüm değişkenleri listeleyecek ;

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

Yeni bir makro oluşturabilir ve oraya dökebilirsiniz, bu da size bilgi vermelidir. İlgilendiğiniz değişkenin adını bulduğunuzda,

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

2
Bu çok iyi, teşekkürler. Microsoft'un bir koleksiyon verdiğiniz önceden paketlenmiş bir seçici pencere sağlamadığı çok kötüdür ve koleksiyondan bir veya daha fazla öğe seçmenize (veya gerçek koleksiyon) ve ardından VBA kodunuzun arama alt / işlevindeki seçili öğelere erişmesine izin verir.
BenPen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.