Acabei de escrever uma sub-rotina para colocar propriedades nomeadas em objetos de texto marcados em todos os slides.
Para colocar uma propriedade de arquivo nos slides. Crie uma caixa de texto para armazenar a string. Nas propriedades / Texto alternativo, coloque o nome da propriedade entre colchetes.
Em seguida, execute a macro updateProperties()
.
ie [title]
- permitiria que o título do documento fosse atualizado em vários
Duas tags especiais foram escritas:
[copyright]
inseriria uma sequência de direitos autorais, ou seja, © 1998-2013 P.Boothroyd, NIS Oskemen
[page]
inseriria o número do slide na guia do editor
'Copiar propriedades do documento para todos os slides
«c) 2013, P. Boothroyd para o NIS Oskemen
Página de slides
Sub updateProperties ()
Dim página como slide
Dim propname As String
'analisar todos os slides na apresentação ativa (documento)
Para cada processPage em Application.ActivePresentation.Slides
'digitalize todos os elementos da página em busca da caixa de texto com o campo "altText / title" marcado com "["
Para cada obj No processPage.Shapes
Se esquerda (obj.Title, 1) = "[" Então
Dim sStart, sEnd As Inteiro
'extrair propriedade entre colchetes
sStart = 2
sEnd = InStr (2, obj.Title, "]")
propname = Trim (Médio (obj.Title, sStart, sEnd - 2))
If obj.Type = msoTextBox Then
'defina a caixa de texto com o valor solicitado
obj.TextFrame.TextRange.Text = getProperty (nome do objeto, obj.TextFrame.TextRange.Text)
Fim se
Fim se
Próximo 'obj
Próxima página
End Sub
'obtém a propriedade do documento nomeado (com padrão opcional)
Função getProperty (propname, Opcional def As String) Como String
propriedade 'atribuída o valor padrão
getProperty = def
Dim encontrado como booleano
encontrado = Falso
propname = LCase (propname)
'copyright é uma propriedade gerada
Se propname = "copyright" Então
Autor não Dim como String
Dim empresa como String
Ano de escurecimento
Dim yearTo As String
'obtém todas as variáveis apropriadas
author = getProperty ("autor", "")
company = getProperty ("company", "")
yearFrom = getProperty ("created", "")
yearTo = Format (Now (), "AAAA")
'inserir símbolo de direitos autorais
getProperty = Chr (169) + ""
'anexar período do ano para aviso de direitos autorais
If yearFrom yearTo Then
getProperty = getProperty + yearFrom + "-"
Fim se
getProperty = getProperty + yearTo
adicionar o autor
getProperty = getProperty + "" + autor
'adicione separador para autor / empresa, se ambos existirem
Se Len (autor)> 0 E Len (empresa)> 0 Então
getProperty = getProperty & ","
Fim se
getProperty = getProperty & company
'processado, então retorne o valor
found = True
Fim se
'insira o número do slide no documento
Se propname = "página" Então
getProperty = processPage.SlideNumber
found = True
Fim se
'se o nome gerado criado retornar o valor
Se encontrado, o GoTo ret
'procure propriedades padrão de MS (arquivo) do valor nomeado
Para cada p Em Application.ActivePresentation.BuiltInDocumentProperties
Se LCase (p.Name) = propname Then
getProperty = p.Value
found = True
Sair para
Fim se
Próximo 'p
'procure propriedades personalizadas do valor nomeado
Se encontrado, o GoTo ret
Para cada p Em Application.ActivePresentation.CustomDocumentProperties
Se LCase (p.Name) = propname Then
getProperty = p.Value
found = True
Sair para
Fim se
Próximo 'p
ret:
Função final