Можно ли назначить определенный стиль для всех перекрестных ссылок в Word 2007?

39537
Drake

Больше нечего добавить, я бы хотел сразу изменить стиль всех перекрестных ссылок, которые есть в документе Word 2007. Но я понятия не имею, как это сделать. Как это может быть сделано?

26
Хороший вопрос, я не мог найти ничего быстрого и грязного. Но я думаю, что это связано со стилем всего документа Ivo Flipse 14 лет назад 0
@ Иво, да, я тоже думаю, что это связано со стилем документа, но я плохой SW-разработчик без особого опыта работы с Word :) Drake 14 лет назад 1
@marco: см. мой обновленный ответ Dennis Williamson 14 лет назад 0
да, отличный ответ, большое спасибо, очень очень интересно Drake 14 лет назад 0

5 ответов на вопрос

35
Dennis Williamson

Некоторые типы перекрестных ссылок автоматически форматируются с использованием стиля «интенсивная ссылка», но большинство форматируются как «обычный» текст.

Чтобы применить стиль «интенсивная ссылка» к тексту перекрестной ссылки:

  • выберите текст
  • выберите вкладку «Главная» на ленте
  • с помощью кнопок «вверх» или «вниз» в группе «Стили» на ленте выберите стиль «интенсивная ссылка» (или другой стиль, если хотите)

Чтобы изменить внешний вид всего текста данного стиля:

  • выберите вкладку «Главная» на ленте
  • используя кнопку выпадающего меню в группе «Стили» на ленте, выберите «Применить стили ...»
  • в диалоговом окне «Применить стили» под «Имя стиля» выберите название стиля, который вы хотите изменить (например, «интенсивная ссылка»)
  • Нажмите кнопку «Изменить ...»
  • Измените форматирование в соответствии с вашими предпочтениями и нажмите «ОК»

Чтобы применить стиль ко всем перекрестным ссылкам одновременно:

  • Нажмите Alt+, F9чтобы показать коды полей
  • Выберите вкладку «Главная» на ленте
  • Нажмите «Заменить» в группе «Редактирование»
  • В поле «Найти что» введите ^19 REF
    • (Это Caret-One-девять-Space-REF)
  • Нажмите в поле «Заменить», но ничего не вводите
  • Нажмите кнопку «Еще»
  • Нижняя часть диалога должна называться «Заменить» (с горизонтальным правилом после него)
  • Нажмите кнопку «Формат» и выберите «Стиль ...»
  • Выберите стиль (например, «Интенсивная ссылка») и нажмите «ОК».
  • Теперь должен отображаться стиль, выбранный вами в поле «Заменить»
  • Нажмите «Заменить все», если вы чувствуете себя смелым, или используйте «Найти далее» и «Заменить», чтобы пройти и заменить или пропустить стиль кода каждого ссылочного поля по отдельности.
  • Нажмите Alt+, F9чтобы скрыть коды полей

Смотрите эту страницу для получения дополнительной информации о специальных кодах в Find and Replace.

Вот макрос, который добавит переключатель \* mergeformatв каждое из полей. Этот переключатель необходим для предотвращения потери форматирования при обновлении поля. Вы можете назначить макрос на нажатие клавиши, и он будет перемещаться по полям по одному за каждый раз, когда вы нажимаете клавишу. Вы также можете отредактировать макрос, чтобы зациклить весь документ для автоматизации процесса.

Sub mf() ' ' mf Macro ' Find cross references and add \* mergeformat ' Selection.Find.ClearFormatting With Selection.Find .Text = "^19 REF" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="\* mergeformat " Selection.Find.Execute End Sub 
фактически большинство ссылок, если не все, создаются по умолчанию с обычным текстом. Спасибо за ответ, но в этом случае мне нужно вручную установить стиль каждого из них, прежде чем я смогу обновить стиль для всех сразу. Я искал метод, который может автоматизировать первый шаг процесса Drake 14 лет назад 0
вау, я не знал, это расширенное использование найти / заменить, очень полезно Drake 14 лет назад 5
Вы отвечаете - маленький драгоценный камень сжатых знаний. Стоит своей вики! Grimace of Despair 10 лет назад 5
Иисус Христос ... это прекрасно работает, но дело в том: зачем так сложно применять стиль к перекрестным ссылкам !? ;) Leniel Maccaferri 9 лет назад 5
на MS Word 16.9.1 на Mac это работает (не пробовал макрос), но поиск / замена не на домашней ленте (я думаю?), а вместо этого в меню под Edit-> Find-> Advanced Найти и заменить... Michael 6 лет назад 0
1 / Если это не сработает, проверьте, не перепутали ли вы «Intense Reference» с «Intense Emphasis» 2 / Для макроса, который проходит по всему документу и применяет (новый) стиль ко всем перекрестным ссылкам, см. «Jaykrushna patel» ответ ниже JinSnow 5 лет назад 0
@Dennis это работает для «заголовка текста», но стиль не относится к «номеру страницы», есть идеи, как это сделать? JinSnow 5 лет назад 0
@JinSnow: Извините, нет. Dennis Williamson 5 лет назад 0
4
cyborg
  • Нажмите Alt+, F9чтобы показать коды полей
  • Используйте следующий макрос, чтобы добавить CHARFORMAT ко всем перекрестным ссылкам. Этот макрос добавляет строку в поле, только если ее там еще нет.

    Sub SetCHARFORMAT() ' ' Set CHARFORMAT switch to all fields. Replace MERGEFORMAT. ' ' Dim oField As Field Dim oRng As Range For Each oField In ActiveDocument.Fields 'For Each oField In Selection.Fields If InStr(1, oField.Code, "REF ") = 2 Then If InStr(1, oField.Code, "MERGEFORMAT") <> 0 Then oField.Code.Text = Replace(oField.Code.Text, "MERGEFORMAT", "CHARFORMAT") End If If InStr(1, oField.Code, "CHARFORMAT") = 0 Then oField.Code.Text = oField.Code.Text + "\* CHARFORMAT " End If End If Next oField   End Sub 
  • Используйте этот макрос для форматирования всех перекрестных ссылок со стилем «Тонкая ссылка» (убедитесь, что у вас есть такой стиль, и что отображаются коды полей):

    Sub SetCrossRefStyle() ' ' Macro to set styole of all cross references to "Subtle Reference" ' ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Style = ActiveDocument.Styles( _ "Subtle Reference") With Selection.Find .Text = "^19 REF" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub 
  • Нажмите Alt+, F9чтобы скрыть коды полей

2
Jaykrushna patel

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

ActiveDocument.ActiveWindow.View.ShowFieldCodes = False 

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

Sub SetCrossRefStyle() ' ' Macro to set styole of all cross references to "Subtle Reference" ' ' ActiveDocument.ActiveWindow.View.ShowFieldCodes = True Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Style = ActiveDocument.Styles( _ "Subtle Reference") With Selection.Find .Text = "^19 REF" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll ActiveDocument.ActiveWindow.View.ShowFieldCodes = False End Sub 

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

0
Evgeny

Быстрый и эффективный способ:

  1. Выделите текст с форматированием, которое вы хотите использовать для ссылок.
  2. Выберите вкладку « Главная » на ленте.
  3. Щелкните правой кнопкой мыши по стилю Normal и выберите Update Normal, чтобы соответствовать выбору .
  4. Ссылки Update с Ctrl+ A, F9.
0
TJH

Этот макрос открывает диалоговое окно Перекрестная ссылка для вставки перекрестной ссылки в текущей позиции курсора.

Когда вы закрываете диалоговое окно Xref после вставки ссылки, макрос возобновляет форматирование вставленной перекрестной ссылки в верхний индекс.

Sub XrefSuper() ' ' This opens the Cross Reference dialogue box to insert a cross reference at the current cursor position. ' When the dialogue box is closed after inserting the reference the macro resumes to format the inserted cross reference to superscript. ' ' Dim wc As Integer wc = ActiveDocument.Characters.Count  Dim dlg As Dialog Set dlg = Dialogs(wdDialogInsertCrossReference) dlg.Show 'Open dialogue and perform the insertion from the dialog box)  'Macro continues after closing CrossRef dialogue box  If wc = ActiveDocument.Characters.Count Then Exit Sub 'If we failed to insert something then exit  Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Font.Superscript = wdToggle Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.Font.Superscript = wdToggle End Sub 

Спасибо Грэму Скану в ExpertsExchange за то, как открыть диалог Xref.

Похожие вопросы