Renomeando um marcador no Word 2010

13

Costumo usar marcadores no Word para criar documentos técnicos com links internos para citações e informações comumente usadas que precisam ser consistentes em todo o documento. Você pode criá-los selecionando o texto e depois indo ao menu Insert-> Links-> Bookmarke atribuindo um nome, depois indo para Insert-> Links-> Citationse selecionando o marcador a ser inserido. Isso irá inserir o texto desse marcador em outras partes do documento.

Como exemplo de por que faço isso: geralmente tenho uma primeira página listando o estado do documento e essas informações são repetidas no rodapé. Usando um marcador, posso configurar um link para esse texto e simplesmente inserir esse link no rodapé e ele será atualizado automaticamente sempre que eu for para a visualização de impressão ou atualizar todos os campos do documento. Dessa forma, evito fazer uma pesquisa e substituir e apenas sei que o texto correto será atualizado nos lugares corretos.

insira a descrição da imagem aqui

Agora, digamos que eu tenho um marcador que acabei de nomear, apenas para colocá-lo no lugar:
insira a descrição da imagem aqui

Não há um clique com o botão direito do mouse para renomear um marcador e não consigo encontrar nenhuma propriedade do documento que permita alterá-lo.

Consigo inserir um NOVO marcador selecionando o mesmo texto e excluindo o antigo, mas você obtém o seguinte:
insira a descrição da imagem aqui

Você precisa clicar com o botão direito do mouse no campo e apontá-lo de volta para o marcador (agora renomeado de forma eficaz).

Isso não é totalmente utilizável, especialmente em um documento grande em que esse marcador é usado várias vezes.

Eu pesquisei no Google e vi vários scripts VBA na Web, como nesta pergunta, mas como eles efetivamente criam uma nova marca de boo e excluem a antiga, eles criam o mesmo problema acima e são inferiores ao ideal.

Existe uma maneira mais simples ou eficaz de renomear indicadores nos documentos do Word? Ou estou possivelmente usando a Ferramenta Errada ™ para este trabalho?

Mokubai
fonte
Você quis dizer Word 2013, em vez de 2010?
Greek - Area 51 Proposta
@LePressentiment minha cópia do Word é 2010, mas não vejo por que a resposta abaixo não se aplicaria a 2013, a menos que eles tenham revisado significativamente o recurso de favoritos entre versões. Eu ficaria realmente surpreso se eles tivessem.
Mokubai
@LePressentiment Veja minha resposta que foi atualizada por Mokubai.
DavidPostill

Respostas:

7

Existe uma maneira mais simples ou eficaz de renomear indicadores nos documentos do Word?

Não há nenhuma função de renomeação incorporada ao Word. Existem algumas opções para contornar essa falta:

  1. Use um suplemento.

  2. Use VBA.


Solução de suplemento

Use o suplemento da ferramenta Marcador

Ele oferece uma interface de usuário amigável para fazer tudo o que a caixa de diálogo Marcador padrão fará e muito mais.

A Ferramenta de Marcador foi desenvolvida para o Word 2003. É totalmente funcional com o Word 2007/2010.

...

Com a seção "Adicionar / renomear marcador", adicionar marcadores é fácil.

  • Como na caixa de diálogo padrão, basta selecionar o texto, digitar um nome no campo e clicar em "Adicionar".
  • Diferentemente da caixa de diálogo padrão, a Ferramenta Marcador restringe a entrada de chave a caracteres válidos do nome do marcador e o alerta se você tentar criar um nome duplicado.
  • Você também pode usar esta seção para renomear um marcador existente.

    insira a descrição da imagem aqui

Suplemento da Ferramenta de Marcador de Origem


Solução VBA

Não há uma função de renomeação. Você precisa excluir o nome antigo e marcar o intervalo com um novo nome de marcador. Aqui está um exemplo de código VBA:

Sub ReNameBookMark()
    Dim doc As Word.Document
    Dim rng As Word.Range
    Dim bmk As Word.Bookmark
    Dim inpBookmark, repBookmark, fieldStr As String

    Set doc = Word.ActiveDocument

    inpBookmark = InputBox("Enter bookmark name that you want to be replaced:", "BookMark Replace")
    repBookmark = InputBox("Enter bookmark name replace with:", "BookMark Replace")

    Set rng = doc.Bookmarks(inpBookmark).Range
    Set bmk = doc.Bookmarks(inpBookmark)
    bmk.Delete
    rng.Bookmarks.Add (repBookmark)

    If doc.Fields.Count >= 1 Then
        For i = 1 To doc.Fields.Count
            fieldStr = doc.Fields(i).Code.Text
            If Left(fieldStr, 4) = " REF" Then
                doc.Fields(i).Code.Text = Replace(fieldStr, inpBookmark, repBookmark, , 1, vbTextCompare)
                doc.Fields(i).Update
            End If

            'MsgBox "Code = " & doc.Fields(i).Code & vbCr & "Result = " & doc.Fields(i).Result & vbCr
        Next i
    End If
End Sub

Origem Altere o "nome" de um marcador e não o texto , com um loop adicional para percorrer os campos no documento para alterar qualquer um que possa estar fazendo referência ao marcador que está sendo renomeado.

Cuidados devem ser tomados usando este script. Por exemplo renomeando os marcadores que são simplesmente chamados "REF" (ou uma variante maiúsculas ou minúsculas de tal) vai quebrar TODAS AS referências em formas divertidas e inesperadas. Isso é apenas um exemplo e uma correção aproximada.

Se você deseja renomear em lote vários marcadores de uma só vez, consulte Existe uma maneira mais simples ou eficaz de renomear marcadores em documentos do Word? que também inclui código VBA de amostra.

DavidPostill
fonte
@Mokubai Parece que você pode fazer isso com o suplemento (consulte a resposta atualizada)? Infelizmente não tenho uma cópia do Word para testar ...
DavidPostill
Vou testar o suplemento pela manhã quando voltar ao meu PC. Provavelmente é bom para casa, mas no trabalho não acho que poderei usá-lo, pois nosso departamento de TI pode ser um pouco cauteloso com esse tipo de coisa. Vou tentar os dois métodos e verifico se posso aprimorar seu script VBA para fazer a pesquisa e a substituição. Se eu chegar a algum lugar e estiver tudo bem com você, gostaria de editá-lo na sua resposta.
Mokubai
@LePressentiment Caso seja de ajuda para o que você deseja, adicionei alguns recursos ao script VBA acima para fornecer uma caixa de entrada para nomes atuais e novos, e fiz uma pesquisa suja e substitui os campos que se referem a esses indicadores. Não é perfeito, mas é melhor que nada e será mais do que adequado ao que eu preciso fazer no trabalho.
Mokubai
O suplemento Ferramenta de Marcador quebra as referências aos marcadores após renomeá-los (para mim no Word 365 no Windows).
filups21 16/01
1

Eu tive esse mesmo problema e me deparei com este trabalho em torno de / solução.

Para o texto que você deseja referenciar, um título no meu caso, configure um título de propriedade do Documento da seguinte maneira:

Insert tabQuick PartsDocument PropertyTitle

Isso adiciona uma caixa editável para o texto na qual você pode digitar seu título.

Então, para referenciá-lo, você pode simplesmente ir para Insert tabQuick PartsFieldTitleou fazer o que eu fiz acidentalmente - eu tinha uma referência configurada e quando a atualizei com F9ela, adicionei a caixa de título que estava fazendo referência.

Isso é muito legal, pois quando você atualiza a caixa de título, todas as referências são atualizadas automaticamente sem pressionar F9!!! Isso é ótimo quando você tem a referência em um cabeçalho, uma vez que a função Ctrl+ Anão captura o que está no cabeçalho / rodapé e geralmente é necessário clicar duas vezes dentro do cabeçalho / rodapé para selecionar e pressionar F9para atualizar.

Portanto, em vez de criar uma referência de título, como indicado acima, faça o seguinte:

  • Depois de configurar a caixa de título, crie um Favorito da caixa de Título:

    • Marque a caixa de título (clique na guia do título na parte superior para selecionar toda a caixa)
    • InsertBookmark→ (diga o nome Project_title) →add
  • Em seguida, adicione a referência assim:

    • Insert tabQuick PartsFieldRef(e selecione Project_titleou como quiser)
Lee
fonte