Adlandırılmış özellikleri tüm slaytlarda etiketli metin nesnelerine koymak için bir alt yordam yazdım.
Bir dosya özelliğini slaytların üzerine koymak için. Dizeyi tutmak için bir metin kutusu oluşturun. Properties / Alt Text'de özellik adını köşeli parantez içine alın.
Sonra makroyu yürütün updateProperties()
.
yani, [title]
- belge başlığının birden fazla günde güncellenmesine izin verir
İki özel etiket yazılmıştır:
[copyright]
bir telif hakkı dizesini ekleyecekti, örneğin © 1998-2013 P.Boothroyd, NIS Oskemen
[page]
slayt numarasını düzenleyici sekmesinden ekler
Belge özelliklerini tüm slaytlara kopyala
'(c) 2013, P.Boothis NIS Oskemen
Dim processPage Slayt Olarak
Alt updateProperties ()
Slayt olarak Asılı sayfa
Dim propname, String Olarak
'Etkin sunumdaki tüm slaytları ayrıştır (belge)
Application.ActivePresentation.Slides içindeki her bir işlem sayfası için
'sayfanın tüm elemanlarını "altText / title" alanını "[" ile etiketli metin kutusu için tara
ProcessPage.Shapes içindeki Her nesne için
Sol ise (obj.Title, 1) = "[" Öyleyse
Dim sStart, sEnd Tamsayı Olarak
'köşeli parantezler arasında mülkü çıkar
sStart = 2
sEnd = InStr (2, obj.Title, "]")
propname = Kırpma (Orta (obj.Title, sStart, sEnd - 2))
Eğer obj.Type = msoTextBox Öyleyse
'metin kutusunu istenen değere ayarlayın
obj.TextFrame.TextRange.Text = getProperty (propname, obj.TextFrame.TextRange.Text)
Bittiğinde
Bittiğinde
Sıradaki 'obj
Sonraki Sayfa
Son Alt
'adlandırılmış belge özelliğini al (isteğe bağlı varsayılanla)
İşlev getProperty (propname, İsteğe bağlı def As Dize) Dize Olarak
'özelliği varsayılan değeri atadı
getProperty = def
Boolean olarak bulunan Dim
found = False
propname = LCase (propname)
'telif hakkı, üretilen bir mülktür
Eğer propname = "telif hakkı" ise
Dim yazar Dize olarak
Dize olarak Dim şirket
Dize As Yıldan Dize
Dim yearTo String olarak
uygun tüm değişkenleri al
author = getProperty ("yazar", "")
company = getProperty ("şirket", "")
yearFrom = getProperty ("yaratıldı", "")
yearTo = Biçim (Şimdi (), "YYYY")
'telif hakkı sembolünü ekle
getProperty = Chr (169) + ""
'telif hakkı bildirimi için yıl aralığı ekle
Eğer yıldan yıla
getProperty = getProperty + yearFrom + "-" öğesinden
Bittiğinde
getProperty = getProperty + yearTo
'yazar ekle
getProperty = getProperty + "" + yazar
'ikisi de varsa, yazar / şirket için ayırıcı ekle
Eğer Len (yazar)> 0 Ve Len (şirket)> 0 Sonra
getProperty = getProperty & ","
Bittiğinde
getProperty = getProperty & şirketi
'işlendi, bu yüzden değeri döndür
found = True
Bittiğinde
'slayt numarasını belgeye ekle
Eğer propname = "page" ise
getProperty = processPage.SlideNumber
found = True
Bittiğinde
'Eğer oluşturulan isim yaratıldıysa değeri döndür
Bulunduğunda GoTo ret
'belirtilen değerin standart MS (dosya) özelliklerini tara
Application.ActivePresentation.BuiltInDocumentProperties'deki Her p için
Eğer LCase (p.Name) = propname Sonra
getProperty = p.Value
found = True
Çık
Bittiğinde
Sıradaki 'p
'belirtilen değerin özelleştirilmiş özelliklerini tara
Bulunduğunda GoTo ret
Application.ActivePresentation.CustomDocumentProperties'deki Her p için
Eğer LCase (p.Name) = propname Sonra
getProperty = p.Value
found = True
Çık
Bittiğinde
Sıradaki 'p
ret:
Son İşlev