Переименование закладки в Word 2010

13

Я часто использую закладки в Word для создания технических документов с внутренними ссылками на цитаты и часто используемой информацией, которая должна быть согласованной по всему документу. Вы можете создать их, выделив текст, а затем перейдя в меню Insert-> Links-> Bookmarkи присвоив имя, затем перейдя к Insert-> Links-> Citationsи выбрав закладку для вставки. Затем будет вставлен текст этой закладки в другом месте документа.

В качестве примера того, почему я делаю это: у меня часто есть первая страница с перечнем состояния документа, и эта информация затем повторяется в нижнем колонтитуле, используя закладку, я могу установить ссылку на этот текст и затем просто вставить эту ссылку в нижний колонтитул и он будет обновляться автоматически при каждом переходе к предварительному просмотру или обновлению всех полей в документе. Таким образом, я могу избежать поиска и замены и просто знать, что правильный текст будет обновлен в правильных местах.

введите описание изображения здесь

Теперь допустим, что у меня есть закладка, которую я только что назвал, просто чтобы поставить ее на место:
введите описание изображения здесь

Щелкните правой кнопкой мыши, чтобы переименовать закладку, и я не могу найти свойство документа, которое позволило бы мне изменить его.

Я могу вставить НОВУЮ закладку, выбрав тот же текст, а затем удалив старую, но вы получите следующее:
введите описание изображения здесь

Затем вам нужно щелкнуть правой кнопкой мыши поле и указать его на (теперь эффективно переименованную) закладку.

Это не совсем удобно, особенно в большом документе, где эта закладка используется несколько раз.

Я гуглил и видел несколько сценариев VBA в сети, таких как в этом вопросе, но, поскольку они эффективно создают новую буммарку и удаляют старую, они создают ту же проблему, что и выше, и не идеальны.

Существует ли более простой или эффективный способ переименования закладок в документах Word? Или я использую Wrong Tool ™ для этой работы?

Мокубай
источник
Вы имели в виду Word 2013 вместо 2010?
Греческий - Предложение для области 51
@LePressentiment моя копия Word - 2010, но я не понимаю, почему приведенный ниже ответ не будет применяться к 2013 году, если только они не существенно переработали функцию закладки между версиями. Я на самом деле был бы удивлен, если бы они имели.
Мокубай
@LePressentiment Смотрите мой ответ, который был обновлен Mokubai.
Дэвид Постилл

Ответы:

7

Существует ли более простой или эффективный способ переименования закладок в документах Word?

В Word нет встроенной функции переименования. Есть несколько вариантов, чтобы обойти этот недостаток:

  1. Используйте надстройку.

  2. Используйте VBA.


Решение для надстроек

Используйте надстройку Bookmark Tool

Он предлагает дружественный пользовательский интерфейс для выполнения всего, что делает стандартное диалоговое окно «Закладки», а также многое другое.

Инструмент закладок был разработан для Word 2003. Он полностью функционален в Word 2007/2010.

...

С разделом «Добавить / переименовать закладку» добавление закладок очень просто.

  • Как и в стандартном диалоговом окне, вы просто выбираете текст, вводите имя в поле и нажимаете «Добавить».
  • В отличие от стандартного диалога, инструмент Закладка ограничивает ввод ключа допустимыми символами имени закладки и предупреждает вас, если вы пытаетесь создать дублированное имя закладки.
  • Вы также можете использовать этот раздел, чтобы переименовать существующую закладку.

    введите описание изображения здесь

Надстройка Source Bookmark Tool


Решение VBA

Там нет функции переименования. Вы должны удалить старое имя и пометить диапазон новым именем закладки. Вот пример кода 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

Источник Измените «имя» закладки, а не ее текст , с дополнительным циклом, который будет проходить по полям в документе, чтобы изменить любое, которое может ссылаться на переименованную закладку.

Будьте осторожны, используя этот скрипт. Например, переименование любых закладок, которые просто называются «REF» (или их вариант в верхнем или нижнем регистре) , сломает ВСЕ ссылки забавным и неожиданным образом. Это только пример и примерное исправление.

Если вы хотите пакетное переименование нескольких закладок за один раз, посмотрите, есть ли более простой или эффективный способ переименовать закладки в документах Word? который также включает пример кода VBA.

ДэвидПостилл
источник
@Mokubai Похоже, вы сможете сделать это с помощью надстройки (см. Обновленный ответ)? К сожалению, у меня нет копии Word для тестирования ...
DavidPostill
Я проведу тестирование надстройки утром, когда вернусь к своему ПК. Это, вероятно, хорошо для дома, но я не думаю, что смогу использовать его на работе, так как наш ИТ-отдел может немного опасаться такого рода вещей. Я попробую оба метода и посмотрю, смогу ли я улучшить ваш VBA-скрипт для поиска и замены. Если я доберусь куда-нибудь и с тобой все в порядке, я бы хотел отредактировать это в своем ответе.
Мокубай
@LePressentiment В случае, если это поможет вам, я добавил некоторые функции в скрипт VBA выше, чтобы дать вам поле ввода для текущих и новых имен, и сделал грязный поиск и замену в полях, которые ссылаются на эти закладки. Это не идеально, но лучше, чем ничего, и будет более чем соответствовать тому, что мне нужно делать на работе.
Мокубай
Надстройка Bookmark Tool разрывает ссылки на закладки после их переименования (для меня в Word 365 в Windows).
filups21
1

У меня была такая же проблема, и я наткнулся на эту работу вокруг / решения.

Для текста, на который вы хотите сослаться, в моем случае это заголовок, установите заголовок свойства документа следующим образом:

Insert tabQuick PartsDocument PropertyTitle

Затем добавляется редактируемое поле для текста, в которое вы можете ввести свой заголовок.

Затем, чтобы ссылаться на него, вы можете просто перейти к Insert tabQuick PartsFieldTitleили сделать то, что я сделал случайно - у меня была настроена ссылка, и когда я обновил F9ее, добавил поле заголовка, на которое она ссылалась.

Это довольно круто, так как при обновлении поля заголовка все ссылки обновляются автоматически, не нажимая F9!!! Это замечательно, когда у вас есть ссылка в верхнем колонтитуле, так как функция Ctrl+ Aне захватывает то, что находится в верхнем / нижнем колонтитуле, и вам обычно приходится дважды щелкнуть внутри верхнего / нижнего колонтитула, чтобы выбрать, и нажать F9для обновления.

Поэтому вместо создания ссылки на заголовок, как указано выше, сделайте следующее:

  • После настройки поля заголовка создайте закладку поля заголовка:

    • Выберите поле заголовка (убедитесь, что вы нажимаете вкладку заголовка вверху, чтобы выбрать все поле)
    • InsertBookmark→ (назовите это сказать Project_title) →add
  • Затем добавьте ссылку следующим образом:

    • Insert tabQuick PartsFieldRef(и выберите Project_titleили как вы это называли)
подветренный
источник