Zmiana nazwy zakładki w programie Word 2010

13

Często używam zakładek w programie Word, aby tworzyć dokumenty techniczne z wewnętrznymi linkami do cytatów i często używanymi informacjami, które muszą być spójne w całym dokumencie. Możesz je utworzyć, zaznaczając tekst, a następnie przechodząc do menu Insert-> Links-> Bookmarki przypisując nazwę, a następnie przechodząc do Insert-> Links-> Citationsi wybierając zakładkę do wstawienia. Spowoduje to wstawienie tekstu tej zakładki w innym miejscu dokumentu.

Jako przykład tego, dlaczego to robię: często mam stronę główną z listą stanu dokumentu, a informacje te są następnie powtarzane w stopce, używając zakładki mogę skonfigurować link do tego tekstu, a następnie po prostu wstawić ten link w stopce i będzie aktualizować się automatycznie za każdym razem, gdy przejdę do podglądu wydruku lub zaktualizuję wszystkie pola w dokumencie. W ten sposób mogę uniknąć wyszukiwania i zamiany i po prostu wiem, że poprawny tekst zostanie zaktualizowany w odpowiednich miejscach.

wprowadź opis zdjęcia tutaj

Powiedzmy teraz, że mam zakładkę, którą właśnie z grubsza nadałem, aby ją umieścić:
wprowadź opis zdjęcia tutaj

Nie ma kliknięcia prawym przyciskiem myszy, aby zmienić nazwę zakładki i nie mogę znaleźć żadnej właściwości dokumentu, która pozwoliłaby mi ją zmienić.

Jestem w stanie wstawić NOWĄ zakładkę, zaznaczając ten sam tekst, a następnie usuwając starą, ale otrzymujesz:
wprowadź opis zdjęcia tutaj

Następnie kliknij prawym przyciskiem myszy pole i skieruj je z powrotem na (teraz skutecznie zmienioną nazwę) zakładkę.

Nie jest to w pełni użyteczne, szczególnie w dużym dokumencie, w którym ta zakładka jest używana wielokrotnie.

Przeglądałem go i widziałem kilka skryptów VBA w Internecie, takich jak w tym pytaniu, ale ponieważ skutecznie tworzą one nowy boomark i usuwają stary, tworzą ten sam problem jak powyżej i są mniej niż idealne.

Czy istnieje prostszy lub bardziej skuteczny sposób zmiany nazwy zakładek w dokumentach Word? Czy może używam Wrong Tool ™ do tego zadania?

Mokubai
źródło
Miałeś na myśli Word 2013 zamiast 2010?
Grecki - Obszar 51 Wniosek
@LePressentiment moją kopią programu Word jest 2010, ale nie rozumiem, dlaczego poniższa odpowiedź nie miałaby zastosowania do 2013 r., Chyba że znacząco zmodyfikują funkcję dodawania zakładek między wersjami. Byłbym zaskoczony, gdyby mieli.
Mokubai
@LePressentiment Zobacz moją odpowiedź, która została zaktualizowana przez Mokubai.
DavidPostill

Odpowiedzi:

7

Czy istnieje prostszy lub bardziej skuteczny sposób zmiany nazwy zakładek w dokumentach Word?

W programie Word nie ma wbudowanej funkcji zmiany nazwy. Istnieje kilka opcji obejścia tego braku:

  1. Użyj dodatku.

  2. Użyj VBA.


Rozwiązanie dodatków

Skorzystaj z narzędzia do dodawania zakładek

Oferuje przyjazny interfejs użytkownika do robienia wszystkiego, co zrobi standardowe okno dialogowe Zakładki oraz wiele więcej.

Narzędzie zakładek zostało opracowane dla programu Word 2003. Jest ono w pełni funkcjonalne w programie Word 2007/2010.

...

Dzięki sekcji „Dodaj / Zmień nazwę zakładki” dodawanie zakładek jest dziecinnie proste.

  • Tak jak w standardowym oknie dialogowym, wystarczy zaznaczyć tekst, wpisać nazwę w polu i kliknąć „Dodaj”.
  • W przeciwieństwie do standardowego okna dialogowego Narzędzie zakładek ogranicza wprowadzanie klucza do prawidłowych znaków nazwy zakładki i ostrzega, jeśli spróbujesz utworzyć zduplikowaną nazwę zakładki.
  • Możesz także użyć tej sekcji, aby zmienić nazwę istniejącej zakładki.

    wprowadź opis zdjęcia tutaj

Źródło Dodaj do ulubionych zakładek


Rozwiązanie VBA

Nie ma funkcji zmiany nazwy. Musisz usunąć starą nazwę i zaznaczyć zakres nową nazwą zakładki. Oto przykładowy kod 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

Źródło Zmień „nazwę” zakładki, a nie jej tekst , dodając dodatkową pętlę do przejścia przez pola w dokumencie, aby zmienić dowolne, które mogą odnosić się do nazwy zakładki, której nazwa się zmienia.

Należy zachować ostrożność przy użyciu tego skryptu. Na przykład zmiana nazwy wszystkich zakładek, które są po prostu nazywane „REF” (lub wariant z dużymi lub małymi literami) spowoduje uszkodzenie WSZYSTKICH odnośników w zabawny i nieoczekiwany sposób. Ma to charakter wyłącznie przykładowy i przybliżony.

Jeśli chcesz grupowo zmienić nazwę wielu zakładek za jednym razem, zobacz Czy istnieje prostszy lub bardziej skuteczny sposób na zmianę nazw zakładek w dokumentach Word? który zawiera również przykładowy kod VBA.

DavidPostill
źródło
@Mokubai Wygląda na to, że możesz to zrobić za pomocą dodatku (zobacz zaktualizowaną odpowiedź)? Niestety nie mam kopii Worda do przetestowania z ...
DavidPostill
Po powrocie na komputer przetestuję dodatek. Prawdopodobnie jest w porządku w domu, ale w pracy nie sądzę, że będę mógł go użyć, ponieważ nasz dział IT może być trochę ostrożny. Spróbuję obu metod i sprawdzę, czy mogę ulepszyć twój skrypt VBA, aby przeprowadzić wyszukiwanie i zamienić. Jeśli gdzieś się dostanę i nie mam nic przeciwko, chciałbym to zmienić w twojej odpowiedzi.
Mokubai
@LePressentiment W przypadku, gdy jest to jakaś pomoc dla tego, czego chcesz, dodałem pewne funkcje do powyższego skryptu VBA, aby dać ci pole wprowadzania dla bieżących i nowych nazw, i wykonałem brudne wyszukiwanie i zastąpiłem pola, które odnoszą się do tych zakładek. Nie jest idealny, ale jest lepszy niż nic i bardziej niż pasuje do tego, co muszę robić w pracy.
Mokubai
Dodatek do narzędzia zakładek łamie odniesienia do zakładek po zmianie ich nazwy (dla mnie w Word 365 na Windows).
filups21
1

Miałem ten sam problem i natknąłem się na to rozwiązanie.

Dla tekstu, do którego chcesz się odwoływać, w moim przypadku tytuł, ustaw tytuł właściwości Dokument w następujący sposób:

Insert tabQuick PartsDocument PropertyTitle

Następnie dodaje edytowalne pole tekstu, w którym możesz wpisać swój tytuł.

Następnie, aby odnieść się do niego, możesz po prostu przejść do Insert tabQuick PartsFieldTitlelub zrobić to, co zrobiłem przypadkowo - miałem skonfigurowane odniesienie i kiedy je zaktualizowałem F9, dodałem pole tytułu, do którego się odnosi.

Jest to całkiem fajne, ponieważ podczas aktualizacji pola tytułowego wszystkie odniesienia są aktualizowane automatycznie bez naciskania F9!!! Jest to świetne, gdy masz odniesienie w nagłówku, ponieważ funkcja Ctrl+ Anie przechwytuje tego, co znajduje się w nagłówku / stopce i zwykle musisz dwukrotnie kliknąć wewnątrz nagłówka / stopki, aby wybrać i nacisnąć, F9aby zaktualizować.

Zamiast tworzyć odniesienie do tytułu, jak podano powyżej, wykonaj następujące czynności:

  • Po skonfigurowaniu pola tytułu utwórz zakładkę pola tytułu:

    • Wybierz pole tytułu (pamiętaj, aby kliknąć kartę tytułu u góry, aby zaznaczyć całe pole)
    • InsertBookmark→ (jak to powiedzieć Project_title) →add
  • Następnie dodaj odniesienie w następujący sposób:

    • Insert tabQuick PartsFieldRef(i wybierz Project_titlelub jakkolwiek to nazwałeś)
Zawietrzny
źródło