Usando o VBA no MS Word 2007 para definir elementos da página?
-
24-09-2019 - |
Pergunta
Eu gostaria de poder criar um elemento de página que eu possa alimentar o texto e ele se formará no layout preferido. Por exemplo:
{MACRO DocumentIntro("Introduction to Business Studies", "FP015", "Teachers' Guide")}
Com isso como um campo, a saída deve ser uma linha, as duas primeiras cordas de um determinado tamanho e fonte, centradas, outra linha e depois a terceira corda fonada, dimensionada e centralizada.
Eu sei que isso é meio que Tex e talvez além do escopo do VBA, mas se alguém tiver alguma idéia de como pode ser possível, por favor, diga!
EDITAR:
OK, se eu colocar as informações necessárias na palavra -chave, como parte das propriedades do documento, com algum tipo de separador exclusivo, isso obtém essas informações e as informações serão exclusivas para cada documento. Em seguida, coloca um marcador onde o material será exibido. Então um cria um AutoOpen
Macro que vai para esse marcador, retira os relevantes das palavras -chave e forma o texto adequadamente para o favorito .Selection
.
Isso é viável?
Solução
Você certamente está no caminho certo aqui para uma solução de codificação. No entanto, existe uma maneira mais simples, sem código - esse é o tipo de cenário que os controles de conteúdo do Word 2007 foram construídos para e com campos/propriedades, você pode se ligar aos controles de conteúdo (CC). Esses CC podem conter estilos (como centralizado, ousado, etc.). Não é necessário VBA.
A coisa mais fácil a fazer é escolher três propriedades de documentos internas que você sempre deseja que sejam. Por exemplo, "Title" pode ser sua primeira string, "sujeito" sua segunda sequência e "palavras -chave" sua terceira. Então, basta ir para o Inserir fita, Peças rápidas, Propriedades do documento e insira, coloque e formate aqueles como você gosta. Em seguida, vá para o botão Iniciar do Word (The Orb Thingy) e depois sob Preparar escolher Propriedades. Aqui você pode digitar, por exemplo "Introdução aos estudos de negócios", no Título Caixa e, em seguida, basta desmarcá -lo de alguma forma (como clique em outra caixa). O controle de conteúdo para Título será preenchido automaticamente com seu texto.
Se você deseja usar isso para vários arquivos, basta criar esse arquivo como um .dotx (após a inserção/colocação/formatação do CC e antes de atualizar o texto das propriedades do documento). Toda vez que tudo o que você precisará fazer é definir essas três propriedades com cada novo arquivo.
Outras dicas
Bem, sim, acabou sendo viável.
Sub autoopen()
Dim sKeywords As String
sKeywords = ActiveDocument.BuiltInDocumentProperties(4)
ActiveDocument.Bookmarks("foo").Select
Selection.Text = sKeywords
End Sub
Ok, eu tenho alguns preenchimentos a fazer, mas pelo menos as entranhas estão lá.