Больше нечего добавить, я бы хотел сразу изменить стиль всех перекрестных ссылок, которые есть в документе Word 2007. Но я понятия не имею, как это сделать. Как это может быть сделано?
5 ответов
Некоторые типы перекрестных ссылок автоматически форматируются с использованием стиля "интенсивная ссылка", но большинство форматируются как "обычный" текст.
Чтобы применить стиль "интенсивная ссылка" к тексту перекрестной ссылки:
- выберите текст
- выберите вкладку "Главная" на ленте
- с помощью кнопок "вверх" или "вниз" в группе "Стили" на ленте выберите стиль "интенсивная ссылка" (или другой стиль, если хотите)
Чтобы изменить внешний вид всего текста данного стиля:
- выберите вкладку "Главная" на ленте
- используя кнопку выпадающего меню в группе "Стили" на ленте, выберите «Применить стили ...»
- в диалоговом окне "Применить стили" под "Имя стиля" выберите название стиля, который вы хотите изменить (например, "интенсивная ссылка")
- Нажмите кнопку «Изменить ...»
- Измените форматирование в соответствии с вашими предпочтениями и нажмите "ОК"
Чтобы применить стиль ко всем перекрестным ссылкам одновременно:
- Нажмите 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
- Нажмите Alt+ F9, чтобы показать коды полей
- Используйте следующий макрос, чтобы добавить CHARFORMAT ко всем перекрестным ссылкам. Этот макрос добавляет строку в поле, только если ее там еще нет. - Sub SetCHARFORMAT() ' ' Set CHARFORMAT switch to all {REF} 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, чтобы скрыть коды полей 
редактируя макрос, загруженный киборгом, мы можем легко автоматизировать показ и скрытие кодов полей. так что каждый раз, когда мы хотим обновить, нам не нужно использовать коды полей переключения. Я использовал следующий код для добавления переключателя кода поля.
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
Это первый раз, когда я использую макросы, чтобы ускорить мою работу в слове. спасибо киборг за такой полезный макрос.
Быстрый и эффективный способ:
- Выделите текст с форматированием, которое вы хотите использовать для ссылок.
- Выберите вкладку « Главная » на ленте.
- Щелкните правой кнопкой мыши по стилю Normal и выберите Update Normal, чтобы соответствовать выбору.
- Обновите ссылки с помощью Ctrl + A, F9.
Этот макрос открывает диалоговое окно Перекрестная ссылка для вставки перекрестной ссылки в текущей позиции курсора.
Когда вы закрываете диалоговое окно 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.
