Перейменування закладок у Word 2010


13

Я часто використовую закладки в Word, щоб створити технічні документи з внутрішніми посиланнями на цитати та загальновживану інформацію, яка повинна бути узгодженою у всьому документі. Ви можете створити їх, вибравши текст, а потім перейшовши до меню Insert-> Links-> Bookmarkта призначивши ім'я, потім перейшовши до Insert-> Links-> Citationsта вибравши закладку для вставки. Потім текст цієї закладки буде вставлено в іншому місці документа.

Як приклад того, чому я це роблю: у мене часто є титульна сторінка, в якій перелічено стан документа, і ця інформація потім повторюється у нижньому колонтитулі, за допомогою закладок я можу встановити посилання на цей текст, а потім просто вставити це посилання у колонтитул і оновиться автоматично, коли я перейду до попереднього перегляду друку або оновлення всіх полів документа. Таким чином я можу уникати пошуку та заміни і просто знаю, що правильний текст буде оновлений у потрібних місцях.

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

Тепер скажемо, що у мене є закладка, яку я лише грубо назвав, щоб її встановити:
введіть тут опис зображення

Немає правої кнопки миші, щоб перейменувати закладку, і я не можу знайти жодне властивість документа, яке дозволило б мені змінити його.

Я можу вставити НОВУ закладку, вибравши той самий текст, а потім видаливши старий, але тоді ви отримаєте це:
введіть тут опис зображення

Потім потрібно клацнути правою кнопкою миші поле та навести його назад на (тепер фактично перейменовану) закладку.

Це не зовсім корисно, особливо у великому документі, де ця закладка використовується кілька разів.

Я поглянув навколо і побачив декілька сценаріїв VBA в Інтернеті, як, наприклад, у цьому питанні, але оскільки вони ефективно створюють нову буммарку та видаляють стару, вони створюють ту ж проблему, що і вище, і є менш ідеальною.

Чи є більш простий чи ефективніший спосіб перейменувати закладки в документах Word? Або я, можливо, використовую Wrong Tool ™ для цієї роботи?


Ви мали на увазі Word 2013, а не 2010?
Грецька - Площа 51 Пропозиція

@LePressentiment моя копія Word - 2010 рік, але я не бачу, чому відповідь нижче не застосовуватиметься до 2013 року, якщо вони не переробили істотну функцію закладок між версіями. Я насправді був би здивований, якби вони були.
Мокубай

@LePressentiment Дивіться мою відповідь, яку оновив Мокубай.
DavidPostill

Відповіді:


7

Чи є більш простий чи ефективніший спосіб перейменувати закладки в документах Word?

У Word немає вбудованої функції перейменування. Є кілька варіантів, щоб подолати цей недолік:

  1. Використовуйте надбудову.

  2. Використовуйте VBA.


Рішення надбудови

Використовуйте надбудову інструменту закладок

Він пропонує дружній користувальницький інтерфейс для виконання всього стандартного діалогового вікна "Закладки" та багато іншого.

Інструмент закладок був розроблений для Word 2003. Він повністю функціонує з Word 2007/2010.

...

У розділі "Додати / перейменувати закладку" додавання закладок - це вітер.

  • Як і в стандартному діалоговому вікні, ви просто вибираєте текст, набираєте ім'я в полі та натискаєте "Додати".
  • На відміну від стандартного діалогового вікна, Інструмент закладок обмежує введення клавіш дійсними символами імені закладок і попереджає вас, якщо ви намагаєтесь створити повторне ім’я закладок.
  • Ви також можете використовувати цей розділ для перейменування наявної закладки.

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

Додаток для інструментів закладок джерел


Рішення 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, щоб дати вам поле введення для поточних та нових імен, і здійснив брудний пошук та заміну в полях, що посилаються на ці закладки. Це не ідеально, але це краще, ніж нічого, і більше ніж задовольнить те, що мені потрібно робити на роботі.
Мокубай

Додаток Інструмент закладок розбиває посилання на закладки після їх перейменування (для мене в Word 365 в Windows).
filups21

1

У мене була ця сама проблема і натрапив на цю роботу навколо / вирішення.

Для тексту, на який ви хочете посилатись, в моєму заголовку встановіть назву властивості Document таким чином:

Insert tabQuick PartsDocument PropertyTitle

Потім додається редаговане поле для тексту, в яке ви можете ввести назву.

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

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

Тож замість створення посилання на заголовок, як зазначено вище, робіть це:

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

    • Виберіть поле заголовка (переконайтесь, що натисніть вкладку заголовка вгорі, щоб вибрати все поле)
    • InsertBookmark→ (назвіть це сказати Project_title) →add
  • Потім додайте посилання так:

    • Insert tabQuick PartsFieldRef(і виберіть Project_titleабо як ви його називали)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.