powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вставка текста перед закладкой
3 сообщений из 3, страница 1 из 1
Вставка текста перед закладкой
    #39566519
iMerlin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В связи с подготовкой отчета встала задача немного изменить текст документа Word, а именно оформление таблиц в виде перекрестных ссылок (то есть когда мы задаем имя таблицы с помощью поля SEQ. а потом ссылаемся на нее с помощью поля REF.
Согласно правилам Word, если мы поименовали в SEQ "Таблица", так оно и в перекрестной ссылке REF будет отображаться. А согласно ГОСТ нужно в заголовке писать "Таблица", а в ссылке "Табл." Так как отчет на несколько тысяч страниц уже подготовлен по правилам, которые предлагает WORD, передо мной стоит задача выправить все по ГОСТу не нарушая ссылочной целостности.

Самый простой вариант - заменить поле ref на гиперссылку не подходит, так как при дальнейших редакциях таблицы могут добавляться, удаляться, переходить в другие разделы, важно сохранить автоматизацию подписей на этом этапе.
Стал разбираться как работает механизм. Оказалось, что при подписывании имени таблицы автоматически добавляется закладка, range которой содержит слово "Таблица" и поле SEQ - номер таблицы, а поле Ref показывает текст из range закладки на которую она ссылается.
Возникла закономерная идея: переделать у всех заголовков таблиц в закладках "Таблица" на "Табл.", сделать текст скрытым и добавить перед закладкой слово "Таблица" уже нормальным шрифтом.
Вот здесь @ и порылась: как ни бился, не получается вставить текст ПЕРЕД закладкой, он все время норовит влезть внутрь закладки. При попытке изменить range закладки закладка удаляется. Пытался и вручную, из Word и из vba используя примерно какую конструкцию: activedocument.bookmarks("_ref....").range.insertbefore("таблица") - текст вставляется не перед закладкой, а внутри.
На всякий случай напоминаю, что закладка начинается с начала абзаца, возможно это важно.
Итак внимание вопрос: подскажите. пожалуйста. как правильно вставить текст перед закладкой, чтобы в range закладки он не попал?
...
Рейтинг: 0 / 0
Вставка текста перед закладкой
    #39566621
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iMerlin,
можно заменить предыдущий символ на него же + "таблица". Правда, если закладка идет сразу после таблицы, т.е. перед ней нет нормального абзаца, то не сработает.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub Макрос1()
Dim r As Range, b As Bookmark, n&
  For Each b In ActiveDocument.Bookmarks
    n = b.Range.Start
    Set r = ActiveDocument.Range(n - 1, n)
    If Not r.Find.Execute("(?)", , , True, , , True, wdFindStop, False, "\1таблица", wdReplaceOne) Then
      Stop 'действия, если замена не удалась
    End If
  Next
End Sub
...
Рейтинг: 0 / 0
Вставка текста перед закладкой
    #39566656
iMerlin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О, да!!!!
Это оно!!!!
Спасибо.
Тема закрыта.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вставка текста перед закладкой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]