Repetindo uma entrada do usuário em um documento do Microsoft Word


11

Estou tentando criar um documento no qual o usuário tenha a oportunidade de inserir algum texto e eu gostaria de usá-lo nos demais locais do mesmo documento. O texto digitado pelo usuário será usado em muitos lugares no mesmo documento e a alteração do nome a qualquer momento deve ser refletida no restante do documento.

Por exemplo, na primeira página do documento, gostaria de obter o nome e a idade do usuário e usá-lo em outros lugares, como mostra a captura de tela a seguir.

insira a descrição da imagem aqui

Tentei usar o controle de conteúdo de texto sem formatação para obter o nome e a idade. Mas não consegui encontrar uma maneira de inserir esses campos no meu texto.

Alguma idéia de como eu posso conseguir isso? Estou pronto para fazer uma correspondência, mas não quero que os dados sejam de nenhum outro lugar além deste documento. A captura de tela foi testada no Office 2013, mas seria ótimo se funcionasse a partir de 2007 em diante. Eu não quero fazer isso com macros.

Respostas:


6

Eu acho que você terá que usar o Word Template e DocVariables. Isso também significa algum VBa, mas este tutorial cobre

http://www.gmayor.com/BookmarkandVariableEditor.htm

No entanto, como um exemplo de como fazê-lo ler o conteúdo de outro lugar, isso pode ajudá-lo ... Isso não é perfeito, mas pode ser um bom começo!

No Word, adicione a barra de ferramentas do desenvolvedor à faixa de opções.

Na barra de ferramentas do desenvolvedor, solte 2 caixas de texto na guia Controles.

Clique na barra de ferramentas Inserir.

Agora, clique na primeira caixa de texto (aquela onde o texto também deve ser copiado). Certifique-se de clicar nos 3 pontinhos no lado esquerdo para selecionar toda a caixa de texto. Quando você o seleciona, o Marcador (em Links) deve ser ativado. Clique nele e dê um nome apropriado.

Clique na segunda caixa de texto e faça o mesmo, mas desta vez, clique em Referência cruzada. Na caixa suspensa, selecione favoritos e encontre a marca em questão.

Isso está configurado, mas você precisa atualizar manualmente o campo. Portanto, digite algum texto na primeira caixa de texto, clique com o botão direito do mouse na segunda e selecione Atualizar campos. Como eu disse, não é perfeito, mas espero que seja um começo!

Este artigo explica que isso pode ser feito com um modelo e macros. http://word.mvps.org/FAQs/Userforms/CreateAUserform.htm


A chave para criar o marcador foi clicar nos três pontos.
shipr

12

No Windows Word 2007 e versões posteriores, você pode usar alguns dos Controles de Conteúdo inseridos pelo Word em Inserir-> Peças rápidas-> Propriedade do documento ... Por exemplo, se você inserir a Propriedade do documento "Autor", o Word inserirá um controle de conteúdo que está conectado à propriedade interna. Portanto, quando você altera o valor em uma cópia do controle de conteúdo, o valor da propriedade é atualizado e todos os outros controles de conteúdo do Autor são atualizados automaticamente. Isso é diferente da abordagem anterior ao Word 2007, na qual você precisava inserir um campo {AUTHOR}, depois selecioná-lo e atualizá-lo.

Usando a guia Desenvolvedor, você pode selecionar o controle de conteúdo resultante e atribuir um novo título, como "Idade". Em seguida, você pode copiar / colar cópias do controle com esse título. Também é geralmente útil tornar os controles não excluídos.

Se você não deseja usar as propriedades internas tradicionais, como Autor etc., há um conjunto de cinco "propriedades" chamadas Propriedades da página de rosto que você pode usar. Eles também estão disponíveis no menu Propriedade do documento ..., mas os valores são armazenados em um local diferente, ou seja, em uma parte XML personalizada criada pelo Word. Acho que esses são endereço da empresa, email da empresa, fax da empresa, telefone da empresa e data de publicação. Novamente, você pode modificar o título usando a guia Desenvolvedor.

Além disso, você precisa usar o VBA ou algo parecido. Se você estiver usando controles de conteúdo, precisará criar sua própria parte XML personalizada para armazenar os valores e conectar os controles a esse armazenamento. Você encontrará um bom resumo de várias opções para "repetir dados" aqui

FWIW, se você precisar usar formulários no Word, o tipo de campo de formulário mais "compatível" é o que é chamado de "campos de formulário herdados" no Windows Word, porque esse é o único tipo que também funciona no Mac Word. Mas se você precisar apenas de coisas para funcionar no Windows Word 2007 e posterior, os controles de conteúdo têm algumas vantagens.


Existe uma maneira de adicionar campos personalizados adicionais "propriedade da página de rosto" a um modelo para que eles apareçam na lista suspensa Propriedade do documento com um nome personalizado? Por exemplo, "Número do trabalho"? Talvez editando diretamente o XML do modelo?
Rick suporta Monica

@ Rick, você não pode adicionar propriedades de "página de rosto" porque o Word reconhece apenas as predefinidas. Você pode adicionar propriedades que aparecerão na lista, mas precisará do SharePoint ou poderá replicar o que o SharePoint cria. Se você possui o SharePoint e é capaz de criar uma Biblioteca de Documentos com colunas personalizadas, um documento do Word aberto a partir da biblioteca terá adicional.properties. Depois que o documento é criado, ele pode ser usado de forma independente, mas os controles de conteúdo não funcionam da mesma maneira (principalmente, sem validação do servidor).

Obrigado. Gostaria de saber se seria possível editar diretamente o arquivo XML (já que o arquivo .dotx é pouco mais que um documento ZIP) e adicionar as propriedades personalizadas dessa maneira. Eu só precisaria fazer isso uma vez. Obrigado pela ajuda.
Rick suporta Monica

1
Você poderia, mas o XML usado pelo Word é bastante complicado (há uma parte XML personalizada que define um esquema para as várias "metaproperties" do documento. O XML também não é descrito detalhadamente em qualquer lugar que eu conheça, portanto, é necessário um ponto de partida alguém criou no SharePoint. BTW, essas coisas são tão obviamente projetadas para uso com o SharePoint que é improvável que você obtenha suporte enquanto o usa de forma independente. Além disso, provavelmente causaria dificuldades se alguém armazenasse documentos criados dessa maneira em seus próprio sistema SharePoinnt.

Entendido. Provavelmente não está além da minha capacidade, mas também provavelmente não vale a pena descobrir. Vou explorar outras vias para resolver meus problemas.
Rick suporta Monica
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.