Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 10 ]
- rizalut
- подполковник
- Неактивен
- Зарегистрирован: 05.01.2010
- Сообщений: 108
- Поблагодарили: 1
Тема: Как програмно вставить/удалить титул в документ
Я не очень хорошо понимаю. Помогите разобраться.
Такого свойства у Document в хелпе VBA Word 2007 я не нашел.
Я так понимаю, что можно вставить субдокумент в текущий. И этот субдокумент должен быть шаблоном титульного листа. Получится титул.
Но в Ворде есть коллекция титулов, в которую можно добавлять свои. До элемента этой коллекции можно достучаться?
Можно ли титул из этой коллекции скопировать в шаблон активного документа и сохранить в его коллекцию?
С тем, чтобы , при необходимости, программно добавлять оттуда его в активный документ.
И вообще, включает ли шаблон активного документа коллекцию титулов?
Ткните пожалуйста в меня какой нибудь информацией по этой теме.
- rizalut
- подполковник
- Неактивен
- Зарегистрирован: 05.01.2010
- Сообщений: 108
- Поблагодарили: 1
Re: Как програмно вставить/удалить титул в документ
Как вставить титул из коллекции нашел:
Sub InsertTitul()
' InsertTitul
ActiveDocument.AttachedTemplate.BuildingBlockEntries("Боковая линия"). _
Insert Where:=Selection.Range, RichText:=True
End Sub
А вот где он находится - в normal.dot или шаблоне текущего документа (у него свой шаблон)?
- rizalut
- подполковник
- Неактивен
- Зарегистрирован: 05.01.2010
- Сообщений: 108
- Поблагодарили: 1
Re: Как програмно вставить/удалить титул в документ
Записал этот макрос:
Sub InsertTitul()
' вставка титула
ActiveDocument.AttachedTemplate.BuildingBlockEntries("Боковая линия"). _
Insert Where:=Selection.Range, RichText:=True
End Sub
Заодно и вставил титул.
В диалоге записи макроса выбрал сделать доступным только для этого документа.
Потом удалил титул через меню Ворда.
Запускаю записанный макрос и получаю:
Run-time error '5941'
Запрашиваемый номер семейства не существует.
В чем ошибка?
Отредактировано rizalut (11.01.2010 15:30:49)

- admin
- Администратор
- Неактивен
- Откуда: Земля
- Зарегистрирован: 15.12.2009
- Сообщений: 508
- Поблагодарили: 39
Re: Как програмно вставить/удалить титул в документ
rizalut пишет:Как вставить титул из коллекции нашел:
Sub InsertTitul()
' InsertTitul
ActiveDocument.AttachedTemplate.BuildingBlockEntries("Боковая линия"). _
Insert Where:=Selection.Range, RichText:=True
End Sub
А вот где он находится - в normal.dot или шаблоне текущего документа (у него свой шаблон)?
Я не совсем понял, вы открыли две темы одинаковых... Зачем?
В первой теме я ответил, что данные блоки находятся в файле building blocks.dotx (C:\Documents and Settings\ИМЯ_ПОЛЬЗОВАТЕЛЯ\Application Data\Microsoft\Document Building Blocks\1049).
И вот здесь: C:\Program Files\Microsoft Office12\Office12\Document Parts\1049

- admin
- Администратор
- Неактивен
- Откуда: Земля
- Зарегистрирован: 15.12.2009
- Сообщений: 508
- Поблагодарили: 39
Re: Как програмно вставить/удалить титул в документ
rizalut пишет:Run-time error '5941'
Запрашиваемый номер семейства не существует.
В чем ошибка?
Дело в том, что там все хитрее - нужно указать конкретное место хранения шаблона с блоками.
Например, так:
Sub InsertTitul()
'Вставка титульной страницы из коллекции титульных страниц
Dim oTmp As Template
Dim sPath As String
'Устанавливаем путь к шаблону, содержащему коллекции стандартных блоков
sPath = Options.DefaultFilePath(wdUserOptionsPath) & "\Building Blocks.dotx"
Set oTmp = Templates(sPath)
'вставляем нужный блок в выделение или в место нахождения курсора
oTmp.BuildingBlockEntries("Боковая линия").Insert Where:=Selection.Range, RichText:=True
End Sub

- admin
- Администратор
- Неактивен
- Откуда: Земля
- Зарегистрирован: 15.12.2009
- Сообщений: 508
- Поблагодарили: 39
Re: Как програмно вставить/удалить титул в документ
И да, вы можете создавать свои блоки в своих шаблонах (в предустановленные коллекции).
- rizalut
- подполковник
- Неактивен
- Зарегистрирован: 05.01.2010
- Сообщений: 108
- Поблагодарили: 1
Re: Как програмно вставить/удалить титул в документ
Прошу, прощения за 2 темы. Грешу на такой случай: При нажатии кнопки "Отправить" страница не перезагружалась больше 2 минут, просто висела. Я нажал "Предпросмотр" и уже из него "Отправить". Но специально дубликат темы не вбивал. Я удалю нижнюю тему, а ваш комментарий добавлю тут.
- rizalut
- подполковник
- Неактивен
- Зарегистрирован: 05.01.2010
- Сообщений: 108
- Поблагодарили: 1
Re: Как програмно вставить/удалить титул в документ
admin пишет:Коллекциями в Word 2007 называются готовые образцы различных объектов или варианты их редактирования.
Хранятся коллекции в файле-шаблоне Building Blocks.dotx (стандартные коллекции).
Получить доступ к стандартным коллекциям можно примерно так (автозапись макроса):
ActiveDocument.AttachedTemplate.BuildingBlockEntries("Кадр").Insert Where _
:=Selection.Range, RichText:=True
Почитать о коллекциях можно здесь: внешняя ссылка.
Это как бы подключаемые шаблоны-блоки.
- rizalut
- подполковник
- Неактивен
- Зарегистрирован: 05.01.2010
- Сообщений: 108
- Поблагодарили: 1
Re: Как програмно вставить/удалить титул в документ
admin, громадное спасибо!
Действительно, всё не так уж очевидно.
Значит алгоритм добавления блока в Произвольный.dotx таков:
1. устанавливаем к нему путь.
2. создаем в нем коллекцию.
3. сохраняем выделенное, как блок (тип, имя) в этой коллекции.
Остался один вопрос:
Если выделить титульную страницу, в Ворде можно заменить ее на другую. Или удалить. Значит он получает о ней информацию из документа.
Но когда я програмно вставляю титульную страницу, я не создаю нового именованного раздела.
Я просто добавляю несколько разрозненных объектов.
Ведь у документа нет свойства Document.BuildingBlockCollection или чего то подобного.
Как можно выяснить, какие блоки есть в документе, удалять или заменять их.
Короче - как работать с блоками, добавленными в документ?
Отредактировано rizalut (12.01.2010 17:38:44)
- Зарегистрирован: 02.10.2013
- Сообщений: 1
Re: Как програмно вставить/удалить титул в документ
Уважаемые господа, у меня есть разработанный новый титульный лист. Как его включить в список титульных листов, подключаемых при вставке в документ?
Сообщений [ 10 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как програмно вставить/удалить титул в документ
Текстовым редактором Microsoft Word пользуются большинство работающих на компьютере людей, но многим хватает тех знаний, которые они получили, разбираясь с программой самостоятельно. На портале о Microsoft Office Word вы узнаете про: отключить вид шрифтов word 2007.
Такие пользователи даже не подозревают о множестве скрытых функций и возможностей Ворда.
Форум Ворд Эксперт предназначен для продвинутых пользователей, дорожащих своим временем и желающих совершенствоваться. На портале о Microsoft Office Word вы узнаете про: как в ворде сделать уменьшенный текст под чертой.
Здесь вы найдете информацию по самым тонким настройкам программы, макросам и шаблонам.
У форума удобная структура, позволяющая быстро найти любую интересующую информацию. На портале о Microsoft Office Word вы узнаете про: шаблоны для microsoft access.
Самое основное вынесено в «Часто задаваемые вопросы», более нетривиальные проблемы настроек различных функций, редактирования, форматирования и оформления обсуждаются в подразделе «Настройки и Форматирования», а написанию шаблонов и макросов посвящен раздел «Автоматизация». На портале о Microsoft Office Word вы узнаете про: docx офис 2003.
Со своими проблемами вы можете обратиться в подраздел форума «Заявки на разработку», но возможно вам помогут готовые решения из одноименного раздела. На портале о Microsoft Office Word вы узнаете про: как закрепить рисунок в ворде чтобы можно было писать на нем.
Для общения администрацией форума выделена «Курилка».
Кроме того, на форуме приведен список литературы очень полезной для освоения программы и оптимизации работы с Вордом. На портале о Microsoft Office Word вы узнаете про: поздравительные открытки в mc word.