Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
loken
15 / 15 / 2
Регистрация: 19.03.2013
Сообщений: 48
1

Автоматическое формирование содержания для нескольких Word документов

19.03.2013, 10:44. Просмотров 2343. Ответов 5
Метки нет (Все метки)

при создании макроса у меня появляется
Visual Basic
1
2
3
Application.Templates( _
        "C:\Users\alekseev\AppData\Roaming\Microsoft\Document Building Blocks\1049\14\Built-In Building Blocks.dotx" _
        ).BuildingBlockEntries("ÀâòîñîáèðГ*åìîå îãëГ*âëåГ*ГЁГҐ 1").Insert Where:=Selection.Range, RichText:=True
как сделать чтоб содержание вставлялось не в этот документ, а в какой либо другой, и при формировании нового содержания для другого документа вставлялось в конец этого документа с содержанием. либо помогите перевести этот код в код C++ либо С#. Также ищу другие методы реализации данной проблемы
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2013, 10:44
Ответы с готовыми решениями:

Формирование содержания массива с листа
Добрый день . На листе1 имеется таблица цветов(469 цветов).В коде программы используется массив...

Параметры страниц для нескольких документов
Задача в чём? Нужно для 10 открытых документов установить одинаковые поля и колонтитулы. Вот есть...

VBA скрипт для печати конвертов для Word документов на ВЫДЕЛЕННОМ принтере
Всем привет! Мне приходится печатать в MS Word 2010 много писем в разные адреса (то есть каждое...

Макрос для всех открытых документов ms word
Добрый день. Необходимо написать макрос, который будет устанавливать переплет во всех открытых...

Печать в Word нескольких документов подряд
Не знаю, как быть: в Word - у меня должны распечататься несколько документов, которые тут же и...

5
Скрипт
5452 / 1133 / 49
Регистрация: 15.09.2012
Сообщений: 3,427
19.03.2013, 15:39 2
loken, а как вообще макрос начинает работать? Пользователь нажимает кнопку, запускается макрос, затем что происходит?
0
loken
15 / 15 / 2
Регистрация: 19.03.2013
Сообщений: 48
20.03.2013, 07:14  [ТС] 3
это макрос записанный при создании автоматического содержания... я хочу его использовать для формирования содержания для нескольких документов, причем содержание для всех документов должно собираться в отдельном файле, один за другим
0
Скрипт
5452 / 1133 / 49
Регистрация: 15.09.2012
Сообщений: 3,427
20.03.2013, 08:58 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Пункт 1

loken, такое содержание нельзя сделать в программе "Word". Автоматическое содержание работает только внутри одного документа.

В вашем случае нужно использовать другие инструменты для решения вашей задачи, а не инструмент программы "Word" - "автоматическое содержание".


Пункт 2

Предложу варианты решения вашей задачи (возможно есть ещё и другие варианты, т.к. одну и ту же задачу иногда можно решать несколькими средствами).

Вариант 1

Можно попробовать использовать поля программы "Word", например: "INCLUDETEXT", "LINK".

Кликните здесь для просмотра всего текста
Поле ниже я поместил в Word-документ, в котором нужно сформировать содержание:
INCLUDETEXT "C:\\Users\\User\\Desktop\\Общая папка\\Источник.docx" Закладка_1 \* MERGEFORMAT

где:

"INCLUDETEXT" - поле программы "Word". В данном случае под полем понимается фрагмент Word-документа, где находится текст, который автоматически формируется программой "Word";

"C:\\Users\\User\\Desktop\\Общая папка\\Источник.docx" - путь и имя Word-документа, откуда надо взять данные;

"Закладка_1" - в документе-источнике я пометил текст, который нужно будет переносить в содержание в другой документ, закладкой и дал этой закладке имя "Закладка_1";

"\* MERGEFORMAT" - используется для оформления текста: размер шрифта, цвет шрифта и т.п. В данном случае подразумевается - сохранить оформление при обновлении поля. Обновление поля - это когда вы в документ-источник вносите изменения и затем хотите, чтобы изменения отобразились в содержании. Тогда вы выполняете обновление.


Примечание

При перемещении Word-документов в другие места на жёстком диске компьютера, поля перестают работать. Может быть можно использовать в полях относительные адреса.


Вариант 2

Можно макросом формировать документ с содержанием.

Кликните здесь для просмотра всего текста

Макрос будет по такому алгоритму работать:
  1. пользователь нажимает кнопку;
  2. появляется окно для выбора Word-документов, из которых нужно взять содержания;
  3. пользователь выбирает Word-документы и нажимает кнопку "OK";
  4. макрос проходится по всем выбранным документам и копирует содержания в документ с содержанием.
1
loken
15 / 15 / 2
Регистрация: 19.03.2013
Сообщений: 48
20.03.2013, 10:44  [ТС] 5
второй вариант был очень даже удобен, но как его реализовать? начал делать через open xml, но тоже возникли некоторые трудности
0
Скрипт
5452 / 1133 / 49
Регистрация: 15.09.2012
Сообщений: 3,427
20.03.2013, 10:59 6
loken, я думаю, что вы вряд ли найдёте где-то информацию, даже на английском языке, как работать с Word-документом с помощью "XML". Поэтому используйте VBA-Word-объекты, про них много информации в интернете и VBA-справочниках.

У вас задача состоит из нескольких частей:
  1. открытие и закрытие определённых Word-документов;
  2. взятие из Word-документа данных и помещение в другой Word-документ.
Делайте ваше задание по частям. У вас объёмное задание и не каждый захочет писать вам код, выясняя детали.

Поэтому разбивайте вашу задачу на части и выясняйте детали по каждой части.
1
20.03.2013, 10:59
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2013, 10:59

Открытие нескольких документов Word: proc.WaitForExit() не дожидается завершения процесса
Добрый день! Проблема возможно тривиальная, но я никак не могу разобраться. В общем задача...

Цикл FOR, формирование содержания с другого КФ
Задачка: Создать командный файл с именем «Свое_имя.bat». В данном файле прописать команды для...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru