Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
2019-09-26 | 332 |
5.00
из
|
Заказать работу |
|
|
Описанный выше алгоритм автонумерации рисунков предполагает достаточно много повторяющихся рутинных действий, связанных с нажатием определенных кнопок на лентах. Гораздо более простой последовательностью действий была бы такая: заносим название будущей закладки в буфер обмена привычным сочетанием клавиш, пишем в абзаце под рисунком подпись, выделяем рисунок и нажимаем простое сочетание клавиш типа Alt+W. Как-то так:
Вводим название закладки:
Вырезаем его (сочетание клавиш Ctrl+X помещает выделенные символы в буфер обмена и удаляет их из основного текста), выделяем рисунок (щелкаем по нему левой клавишей мыши) и нажимаем Ctrl+W:
Открываем список перекрестных ссылок и видим:
Конечно, это не моментальное действие, но оно осуществляется довольно быстро, потому что не требует обращения к каким-либо меню и панелям.
Для осуществления подобных действий существует специальный инструмент — макросы. Макрос — это программа на языке Visual Basic, использующая дополнительные библиотеки Word, которая выполняет с текстом действия, имитирующие действия пользователя. То, что вы делаете с Вордом как пользователь, можно запрограммировать с помощью макросов.
Для создания макросов (теоретически) не требуется изучать Visual Basic. Существует автоматическое средство записи макросов, которое способно автоматизировать 90% любой желаемой операции. Рассмотрим, как оно работает.
Открываем панель Вид и справа видим кнопку:
По нажатию открывается окно записи макроса. Выбираем шаблон типа *.dotm, а также щелкаем кнопку клавишам, чтобы назначить соответствующее сочетание.
Когда подготовка сделана, жмем ОК и выполняем желаемую последовательность действий (конкретно, назначаем имя рисунка — см. раздел по автонумерации). Когда все готово, останавливаем запись кнопкой внизу окна.
|
А теперь попробуйте запустить макрос для разных рисунков, выделив надпись и нажав Alt+W. Код выполняется не совсем правильно. Во-первых, имя закладки всегда одно и то же — ss_united_states. Во-вторых, вероятно, вместо номера рисунка в качестве ссылки вставляется какой-то случайный отрывок символов. Чтобы понять, почему так происходит, посмотрим код. Открываем список макросов (Макросы " Макросы) и жмем Изменить.
Открывается редактор Visual Basic.
К сожалению, полнофункциональный код с помощью средства создания макросов не создать, придется программировать. Вот как должен выглядеть код — см. листинг 1. Весьма неожиданным хаком для его корректной работы является необходимость подключить библиотеку Microsoft Forms 2.0 Object Library, которая находится в файле FM20.DLL системной папки. Подключается через меню редактора Visual Basic Tools " References …
Описание работы кода должно быть понятно из комментариев (строки, помеченные в начале апострофом). В редакторе они будут выделены зеленым цветом.
А чтобы увидеть, что происходит с текстом при выполнении макроса, поставьте брейкпоинт (левой кнопкой мыши на сером поле — см. красную линию), вызовите макрос с помощью Alt+W и наблюдайте за каждым действием, нажимая F8. Код Visual Basic осуществляет манипуляции с текстом, как если бы это был пользователь.
Листинг 1. Макрос для автонумерации рисунков
Sub Автонумерация_рисунков()
'
' Автонумерация_рисунков Макрос
'
' Поместим содержимое буфера обмена в переменную t
Dim MyData As DataObject
Set MyData = New DataObject
Dim t As String
On Error GoTo NotText
MyData.GetFromClipboard
t = MyData.GetText(1)
'Вставляем название (номер) рисунка под выделенным рисунком
With CaptionLabels("Рисунок")
.NumberStyle = wdCaptionNumberStyleArabic
.IncludeChapterNumber = False ‘True, если в документе есть главы
End With
Selection.InsertCaption Label:="Рисунок", TitleAutoText:="InsertCaption2", _
Title:="", Position:=wdCaptionPositionBelow, ExcludeLabel:=1
|
'Возвращаем каретку в начало строки, пишем «Рисунок»
Selection.HomeKey Unit:=wdLine
Selection.TypeText Text:="Рисунок "
Selection.HomeKey Unit:=wdLine
'Выделяем только что вставленный номер рисунка
Selection.MoveRight Unit:=wdCharacter, Count:=8
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
'Добавляем закладку
With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:=t 'Имя закладки из переменной
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
'После надписи вставляем «-», причем тире имеет тип en dash (среднее тире)
Selection.EndKey Unit:=wdLine
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.TypeText Text:=(" " & ChrW(&H2013) & " ")
Selection.HomeKey Unit:=wdLine
'Применяем стиль
On Error GoTo NoStyle
Selection.Style = ActiveDocument.Styles("Подрисуночная подпись")
'Обработчики ошибок
NotText:
If Err.HelpContext = 1000440 Then
MsgBox "Название рисунка должно содержаться в буфере обмена!"
End If
NoStyle:
If Err.Number = 5941 Then
MsgBox "Стиль 'Подрисуночная подпись' не существует!"
End If
End Sub
Проверьте, что теперь все работает так, как написано в начале раздела. Проделайте аналогичные действия для нумерации формул, задав в качестве сочетания клавиш, например, Alt+Q. Если вы забыли назначить сочетание клавиш при создании макроса, вызовите Параметры Word " Настройка " Сочетания клавиш " Настройка.
То же самое можно применить к формулам. Скопируйте название формулы в буфер обмена, введите формулу (объект Microsoft Equation 3.0), поставьте курсор справа от формулы и запустите макрос. Если после формулы стоит знак препинания (. или,), макрос не будет работать правильно. Проверьте, где именно произойдет сбой. Предложите улучшения в код.
Листинг 2. Макрос для автонумерации формул
Sub формулНумерация()
'
' формулНумерация Макрос
'
' Поместим содержимое буфера обмена в переменную t
Dim MyData As DataObject
Set MyData = New DataObject
Dim t As String
On Error GoTo NotText
MyData.GetFromClipboard
t = MyData.GetText(1)
Selection.TypeText Text:=vbTab
Selection.TypeText Text:="("
Selection.InsertCaption Label:="Формула", TitleAutoText:="InsertCaption1", _
Title:="", Position:=wdCaptionPositionBelow, ExcludeLabel:=1
Selection.EndKey Unit:=wdLine
Selection.TypeText Text:=")"
On Error GoTo NoStyle
Selection.Style = ActiveDocument.Styles("Формула")
Selection.EndKey Unit:=wdLine
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
'закладка
With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:=t 'Имя закладки из переменной
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
'Обработчики ошибок
NotText:
If Err.HelpContext = 1000440 Then
MsgBox "Название формулы должно содержаться в буфере обмена!"
|
End If
NoStyle:
If Err.Number = 5941 Then
MsgBox "Стиль ‘Формула' не существует!"
End If
End Sub
Рассмотрим сценарий использования этого макроса. Вы вводите в основном тексте название закладки, вырезаете её (Ctrl+X), помещая в буфер обмена, затем ставите курсор на строку с формулой и нажимаете Alt+Q. Макрос отрабатывает. Однако теперь как правило необходимо вставить закладку в текст, чтобы в тексте была ссылка на рисунок/формулу. Часто место вставки ссылки заранее известно, поэтому для упрощения работы по вёрстке можно ввести дополнительный макрос — ссылка на закладку. Этот макрос будет также работать и для рисунков.
Sub insert_ref()
'
' insert_ref Макрос
'
'
' Поместим содержимое буфера обмена в переменную t
Dim MyData As DataObject
Set MyData = New DataObject
Dim t As String
On Error GoTo NotText
MyData.GetFromClipboard
t = MyData.GetText(1)
Selection.InsertCrossReference ReferenceType:="Закладка", ReferenceKind:= _
wdContentText, ReferenceItem:=t, InsertAsHyperlink:=True _
, IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
NotText:
If Err.HelpContext = 1000440 Then
MsgBox "Название закладки, которую нужно вставить, должно содержаться в буфере обмена!"
End If
End Sub
Если макрос не срабатывает или работает неправильно, возможные причины:
1. Макросы в Word отключены;
2. Имя закладки некорректное: длиннее 40 символов или содержит тире и другие запрещенные знаки;
3. В строке с формулой, кроме формулы, есть дополнительные знаки: пробелы, табуляции, точка/запятая и т.п. Убедитесь в этом, отобразив непечатаемые знаки;
4. В документе нет стиля «Формула» или «Подрисуночная подпись».
Чтобы назначить макросу сочетание клавиш, необходимо вызвать пункт меню Файл -> Параметры -> Настройка ленты. На рисунке ниже рамкой обведена кнопка «Настройка», позволяющая настроить сочетания клавиш в т.ч. макросам.
Нажмите «Назначить», затем «Закрыть» и в основном окне настроек «ОК».
Может быть, вам сейчас кажется, что запоминать сочетания клавиш — это слишком сложно, проще все делать через меню. Однако практика показывает, что продуктивность работы значительно повышается при использовании именно сочетаний клавиш, и по этой причине все современные программы, от инженерных пакетов (CAD) до систем создания музыки (DAW), имеют целую палитру встроенных сочетаний клавиш. Word в этом смысле тоже не исключение. Жирный и курсив вы ведь применяете с помощью Ctrl+B и Ctrl+I?
|
|
|
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!