Acabo de escribir una subrutina para poner propiedades con nombre en objetos de texto etiquetados en todas las diapositivas.
Para poner una propiedad de archivo en diapositivas. Cree un cuadro de texto para contener la cadena. En las propiedades / Texto alternativo, coloque el nombre de la propiedad entre corchetes.
Luego ejecuta la macro updateProperties()
.
es decir [title]
, permitiría que el título del documento se actualice en múltiples
Se han escrito dos etiquetas especiales:
[copyright]
insertaría una cadena de copyright, es decir, © 1998-2013 P.Boothroyd, NIS Oskemen
[page]
insertaría el número de diapositiva desde la pestaña del editor
'Copie las propiedades del documento en todas las diapositivas
«(c) 2013, P.Boothroyd para NIS Oskemen
Proceso atenuado Página como diapositiva
Sub updateProperties ()
Dim página como diapositiva
Dim propname As String
'analizar todas las diapositivas en la presentación activa (documento)
Para cada proceso Página en la aplicación Presentación activa Diapositivas
'escanee todos los elementos de la página para el cuadro de texto con el campo "altText / title" etiquetado con "["
Para cada obj en processPage.Shapes
If Left (obj.Title, 1) = "[" Entonces
Comienzo tenue, fin como número entero
'extraer propiedad de entre corchetes
sStart = 2
sEnd = InStr (2, obj.Title, "]")
propname = Trim (Mid (obj.Title, sStart, sEnd - 2))
Si obj.Type = msoTextBox Entonces
'establece el cuadro de texto en el valor solicitado
obj.TextFrame.TextRange.Text = getProperty (propname, obj.TextFrame.TextRange.Text)
Terminara si
Terminara si
Siguiente 'obj
Siguiente página
End Sub
'obtener la propiedad del documento nombrado (con el valor predeterminado opcional)
Función getProperty (propname, Def opcional como cadena) como cadena
'propiedad asignada al valor predeterminado
getProperty = def
Dim encontrado como booleano
encontrado = falso
propname = LCase (propname)
'el copyright es una propiedad generada
If propname = "copyright" Entonces
Dim autor como cadena
Dim empresa como cadena
Año débil de como cadena
Año débil como cadena
'obtener todas las variables apropiadas
author = getProperty ("autor", "")
empresa = getProperty ("empresa", "")
yearFrom = getProperty ("creado", "")
yearTo = Format (Now (), "AAAA")
'insertar símbolo de copyright
getProperty = Chr (169) + ""
'adjunte período de tiempo para aviso de derechos de autor
Si año Desde año Hasta entonces
getProperty = getProperty + yearFrom + "-"
Terminara si
getProperty = getProperty + yearTo
'agregar el autor
getProperty = getProperty + "" + autor
'agregar separador para autor / empresa si ambos existen
Si Len (autor)> 0 Y Len (compañía)> 0 Entonces
getProperty = getProperty & ","
Terminara si
getProperty = getProperty & company
'procesado, así que devuelve el valor
encontrado = verdadero
Terminara si
'inserte el número de diapositiva en el documento
If propname = "page" Entonces
getProperty = processPage.SlideNumber
encontrado = verdadero
Terminara si
'si el nombre generado creado devuelve el valor
Si se encuentra, entonces vaya a ret
'buscar propiedades estándar de MS (archivo) del valor nombrado
Para cada p en Application.ActivePresentation.BuiltInDocumentProperties
If LCase (p.Name) = propname Entonces
getProperty = p.Value
encontrado = verdadero
Salir por
Terminara si
Siguiente 'p
'buscar propiedades personalizadas del valor nombrado
Si se encuentra, entonces vaya a ret
Para cada p en Application.ActivePresentation.CustomDocumentProperties
If LCase (p.Name) = propname Entonces
getProperty = p.Value
encontrado = verdadero
Salir por
Terminara si
Siguiente 'p
jubilado:
Función final