Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Расположение таблиц относительно параграфов

Автор McConst, 25.04.2014, 12:47:22

« назад - далее »

McConst

Здравствуйте.
У меня в Word имеется серия однотипных таблиц. Под каждой таблицей есть параграф пояснительного текста, или хотя бы один пустой параграф, разделяющий таблицы. Как определить номер параграфа, скажем, под таблицей №3 или номер параграфа, в котором расположена таблица? Что-то в свойствах таблицы и параграфов ничего такого, что мне могло бы помочь, не нашел.

McConst

Частично нащупал решение вопроса.
В каждом параграфе имеется свойство tables, показывающее, принадлежат ли ему таблицы.
Доступ  типа такой objDoc.paragraphs(65).tables.count
И ещё, если, напримеру, таблица №3 начинается с конкретного параграфа, то  у них совпадают свойства Range.Start
objDoc.paragraphs(65).Range.Start=objDoc.tables(3).Range.Start
Теперь перебором параграфов можно найти какой параграф идет после нужной таблицы (.tables.count=0)

Немного сумбурно написано, но вроде бы понятно.

Наверное, можно сделать более рационально поиск параграфа без перебора всех параграфов, но для этого нужно хорошо знать свойства и методы Word документа

McConst

Нашел красивое решение, как определить номер параграфа, идущего сразу после i-й таблицы Word

Dim wObj As Object
Dim objDoc As Object
Dim ParagraphNum As Long ' номер параграфа, в котором находится пояснительный текст под таблицей

'Открываем документ в приложении Word макросом Excel
On Error Resume Next
Set wObj = GetObject(, "Word.Application")
If Err <> 0 Then
   Set wObj = CreateObject("Word.Application")
End If
Set objDoc = wObj.Documents.Open(Filename:=FullFileName, Visible:=False)

'Место в коде, где непосредственно решается проблема данной темы
ParagraphNum = objDoc.Tables(i).Range.End + 1 'Находим первый символ параграфа под таблицей
ParagraphNum = objDoc.Range(Start:=0, End:=ParagraphNum).Paragraphs.count

Яндекс.Метрика Рейтинг@Mail.ru