Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2009, 18:24   #1
darklumen
 
Регистрация: 09.12.2009
Сообщений: 6
По умолчанию макрос добавления названий для таблиц

всем здравствуйте.
у меня есть текстовый документ с огромным количеством страниц. В этом тексте много таблиц, и несколько разделов.
помогите написать макрос, который перед каждой таблицей вставляет название по типу "таблица 1.1", где 1.1 - это первая таблица первого раздела.
darklumen вне форума Ответить с цитированием
Старый 09.12.2009, 21:35   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Привет. Попробуй и напиши о результатах
Код:
Sub NumTables()
  Dim oTbl As Table
  Dim oRng As Range
  Application.ScreenUpdating = False
  For Each oTbl In ActiveDocument.Tables
    oTbl.Cell(1, 1).Select
    Selection.SplitTable
    Set oRng = Selection.Paragraphs.First.Range
    With oRng
      .InsertBefore "Таблица "
      .SetRange .Paragraphs.First.Range.End - 1, .Paragraphs.First.Range.End - 1
      ActiveDocument.Fields.Add oRng, wdFieldSection
      .SetRange .Paragraphs.First.Range.End - 1, .Paragraphs.First.Range.End - 1
      .InsertAfter "."
      .SetRange .Paragraphs.First.Range.End - 1, .Paragraphs.First.Range.End - 1
      ActiveDocument.Fields.Add oRng, wdFieldSequence, "Таблица"
    End With
  Next
  Application.ScreenUpdating = True
End Sub
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 13.11.2010, 05:01   #3
npocmop
Пользователь
 
Аватар для npocmop
 
Регистрация: 02.11.2010
Сообщений: 55
По умолчанию

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

а как правильно в коде обозначать рисунки и активные диаграммы?? НА figures и pictures ругается
и второйраздел не слушается...

Sub NumTables()
Dim oTbl As Table
Dim oRng As Range
Application.ScreenUpdating = False
For Each oTbl In ActiveDocument.Tables
oTbl.Cell(1, 1).Select
Selection.SplitTable
Set oRng = Selection.Paragraphs.First.Range
With oRng
.InsertBefore "Таблица "
.SetRange .Paragraphs.First.Range.End - 1, .Paragraphs.First.Range.End - 1
ActiveDocument.Fields.Add oRng, wdFieldSection
.SetRange .Paragraphs.First.Range.End - 1, .Paragraphs.First.Range.End - 1
.InsertAfter "."
.SetRange .Paragraphs.First.Range.End - 1, .Paragraphs.First.Range.End - 1
ActiveDocument.Fields.Add oRng, wdFieldSequence, "Таблица"
End With

oTbl.Cell(2, 2).Select
Selection.SplitTable
Set oRng = Selection.Paragraphs.Second.Range
With oRng
.InsertBefore "Таблица "
.SetRange .Paragraphs.Second.Range.End - 1, .Paragraphs.Second.Range.End - 1
ActiveDocument.Fields.Add oRng, wdFieldSection
.SetRange .Paragraphs.Second.Range.End - 1, .Paragraphs.Second.Range.End - 1
.InsertAfter "."
.SetRange .Paragraphs.Second.Range.End - 1, .Paragraphs.Second.Range.End - 1
ActiveDocument.Fields.Add oRng, wdFieldSequence, "Таблица"
End With

Последний раз редактировалось npocmop; 13.11.2010 в 05:47. Причина: чуть не забыл спросить..
npocmop вне форума Ответить с цитированием
Старый 13.11.2010, 11:25   #4
forumWord
Пользователь
 
Регистрация: 23.09.2010
Сообщений: 65
По умолчанию

npocmop, figures и pictures - нет таких объектов в VBA Word. Для работы с рисунками надо использовать:
Цитата:
Shapes
forumWord вне форума Ответить с цитированием
Старый 14.11.2010, 19:00   #5
npocmop
Пользователь
 
Аватар для npocmop
 
Регистрация: 02.11.2010
Сообщений: 55
По умолчанию спасибо :) почитал...

тогда вроде так: приер.rar
но две задачи осталось никак не разгрысть:
- ровнять надпись справа по границе рисунка, другим форматом шрифта (мелким и наклонным - как обычно надписи)
- привязать к разделу в формате картинка № .. раздела ..
npocmop вне форума Ответить с цитированием
Старый 16.11.2010, 09:44   #6
forumWord
Пользователь
 
Регистрация: 23.09.2010
Сообщений: 65
По умолчанию

npocmop,
Цитата:
другим форматом шрифта (мелким и наклонным - как обычно надписи)
В документе есть ещё что-нибудь кроме слов "Картинка №", оформленное стилем "Название объекта"?

Документ весь в альбомной ориентации и во всех разделах одинаковые поля?

Картинки имеют разную ширину?

Цитата:
№ .. раздела ..
есть же поле
Код:
Section

Последний раз редактировалось forumWord; 16.11.2010 в 09:47.
forumWord вне форума Ответить с цитированием
Старый 16.11.2010, 17:01   #7
npocmop
Пользователь
 
Аватар для npocmop
 
Регистрация: 02.11.2010
Сообщений: 55
По умолчанию

1. ведь обычно всегда в документе есть ещё что-нибудь кроме слов "Картинка №", оформленное стилем "Название объекта".
2. документ не весь в альбомной ориентации и во всех разделах не одинаковые поля.
3. картинки имеют разную ширину. и там полно таблиц, которые нумеруются первым макросом viter.alex, только с разделами пока разбираюсь, с section..
npocmop вне форума Ответить с цитированием
Старый 16.11.2010, 17:38   #8
forumWord
Пользователь
 
Регистрация: 23.09.2010
Сообщений: 65
По умолчанию

Цитата:
ведь обычно всегда в документе
а у вас как обычно?
forumWord вне форума Ответить с цитированием
Старый 16.11.2010, 23:00   #9
npocmop
Пользователь
 
Аватар для npocmop
 
Регистрация: 02.11.2010
Сообщений: 55
По умолчанию

извиняюсь .. сразу не увидел
npocmop вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
процедуры переворотов, добавления, удаления элемента.. для AVL дерева smalsvoloch Помощь студентам 0 03.12.2009 20:28
Размещение информации из таблиц "Справочников" на форме для добавления-редактирования vovk БД в Delphi 9 15.06.2009 21:50
Надо макрос для Excel для перестановки букв dionisprf Microsoft Office Excel 2 10.06.2009 06:04
макрос для сводных таблиц jisu Microsoft Office Excel 4 05.05.2009 05:23
Совпадение названий программ mutabor Свободное общение 3 25.10.2007 19:40