|
|
|
| У меня возникла еще одна проблема.
Из Access 2003 программно формирую документ Word. Документ состоит из разных частей, причем каждая часть может быть текстом или таблицей.
Для формирования каждой части использую свой шаблон (то есть создаю отдельный документ Word, формирую часть основного документа и затем вставляю в основной документ).
В некоторых таблицах созданы нумерованные списки, причем довольно сложно определить, в каких именно ячейках. Когда я вставляю их в Word, он продолжает нумерацию с последнего вставленного списка, а мне нужно, чтобы нумерация всегда была с единицы. Можно ли это сделать, не заморачиваясь определением номера ячейки, в которой появилась нумерация. Спасибо. | |
|
| |
|
|
|
| Типа Формат - Список - Начать заново. Это? | |
|
| |
|
|
|
| Это, только мне нужно программно, и при условии, что я не знаю, где именно в документе возник список. | |
|
| |
|
|
|
| Как так? Там разве нет закладки? А определить программно то, что курсор находится в нужном для списка месте можно? Если да, то записал вот макрос. Получилось.
ListGalleries(wdNumberGallery).ListTemplates(1).Name = ""
Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries( _
wdNumberGallery).ListTemplates(1), ContinuePreviousList:=False, ApplyTo:= _
wdListApplyToWholeList, DefaultListBehavior:=wdWord10ListBehavior
И с 1 начинается список.
Вообще, я не программер и не учился этому делу. В ворде есть кнопарь "ЗАП". Через него в макрос записывается любое действие. Из кода ненужное убираю и как-то работает. | |
|
| |
|
|
|
| Теоретически можно определить, практически, в моем случае, очень трудно. Если бы знала нужное место, не было бы и вопроса. При случае тоже пользуюсь записью макросов. | |
|
| |
|
|
|
| сделал, когда учился программировать.
реализация правда на VB.
там есть исходники проекта
http://by-pass.narod.ru/prjVB/printinword/printinword.htm | |
|
| |
|
|
|
| Большое спасибо! Сейчас буду пробовать. | |
|
| |
|
|
|
| Посмотрела Ваш проект. Мне очень понравилось, но, к сожалению, не нашла решения своей проблемы. Я вывожу все, что мне нужно, в один Word-документ, а потом приходится для каждого списка назначать нумерацию сначала вручную. Может быть можно сделать это через VBA для всех списков одновременно? | |
|
| |
|
|
|
|
With objSel
'--------вставка скопированной таблицы
.PasteAndFormat Type:=wdPasteDefault
'--------войти в таблицу
.MoveUp unit:=wdLine, Extend:=wdMove
'------------работа со списком
End With
Set objTab = objSel.Tables(1) - определить таблицу
objTab.Cell(3, 1).Select - определить ячейку для нумерации
With objWord.ListGalleries(wdNumberGallery).ListTemplates(1).ListLevels(1)
--------
.StartAt = 1
End With
|
выполняйте каждого нового списка | |
|
| |
|
|
|
| Спасибо! Я давно не заходила в форум, поэтому так задержалась с ответом.
Хотелось бы понять, можно ли как-то программно определить, в какой именно ячейке таблицы создан список. Я создаю фрагменты своего документа из разных шаблонов, в которых могут присутствовать таблицы различной конфигурации, так что не просто в конкретном случае определить номер нужной ячейки. | |
|
| |