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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2010, 12:13   #11
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Этот же код, но с Tables(2), Tables(3), Tables(4)... пока не кончатся.
Ну а как сделать, что бы макрос проходил по всему документу и выполнял эта для всех таблиц?
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 24.03.2010, 13:02   #12
akokin
Пользователь
 
Регистрация: 02.08.2008
Сообщений: 94
По умолчанию

Цитата:
Сообщение от Polotenchik Посмотреть сообщение
Ну а как сделать, что бы макрос проходил по всему документу и выполнял эта для всех таблиц?
Код:
Dim tbl as Table
For each tbl in ActiveDocument.Tables
...
Next tbl
akokin вне форума Ответить с цитированием
Старый 24.03.2010, 17:47   #13
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Хм! Создал новый макрос Test и задал ему такой код:

Код:
Sub Test()
'
' Test Макрос
'
'
Dim tbl As Table
For Each tbl In ActiveDocument.Tables
Selection.Tables(tbl).AutoFitBehavior (wdAutoFitWindow)
Next tbl

End Sub
Не работает! Что сделал не так?

Разобрался! Надо было так:
tbl.AutoFitBehavior (wdAutoFitWindow)

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

Если так записать макрос, то код такой:
Код:
   Selection.SelectCell
    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
    Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
Как это правильно вставить в наш цикл?
Я бы изменил мир, но Бог не дает исходники...

Последний раз редактировалось Polotenchik; 24.03.2010 в 18:02.
Polotenchik вне форума Ответить с цитированием
Старый 26.03.2010, 18:41   #14
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Подскажите пожалуйста!
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 26.03.2010, 19:43   #15
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от Polotenchik Посмотреть сообщение
…А как мне сюда же вставить, что бы текст в каждой таблице выравнивался по центру как по верт, так по гор?

Если так записать макрос, то код такой:
Код:
   Selection.SelectCell
    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
    Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
Как это правильно вставить в наш цикл?
Selection.SelectCell убери. А в остальных строках вместо Selection поставь tbl.Range. Естественно, в цикле, как и AutoFit
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 26.03.2010, 20:20   #16
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Спасибо! Я наверное Вас уже достал, извините. Подскажите еще пожалуйста:

Мне надо перед таблицей удалить одну строку лишнею, ту что между названием таблицы и таблицей.

Выделяю таблицу и просто записываю макрос:

Код:
    Selection.MoveUp Unit:=wdLine, Count:=1
    Selection.Delete Unit:=wdCharacter, Count:=1
А как его применить к циклу? tbl.Range. не прокатывает!
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 26.03.2010, 20:51   #17
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

tbl.Range как раз прокатывает.
Код:
tbl.Range.Paragraphs.First.Previous.Range.Delete
что по-русски означает: удалить абзац перед первым абзацем в таблице
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 26.03.2010, 21:02   #18
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Цитата:
Сообщение от viter.alex Посмотреть сообщение
tbl.Range как раз прокатывает.
Код:
tbl.Range.Paragraphs.First.Previous.Range.Delete
что по-русски означает: удалить абзац перед первым абзацем в таблице
А как быть с изменением шрифта и размера?:

Код:
Selection.Font.Name = "Calibri"
    Selection.Font.Size = 10
Есть какие-то общин понятия? От куда Вы это все берете?
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 26.03.2010, 21:14   #19
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Всё это я беру из изучения объектной модели Word. Есть объект Range со своими свойствами и методами, есть объект Selection, есть Table и т.д. И всё это есть в справке. Обратите внимание на подпись Sasha_Smirnov!
А по вашему примеру всё то же: замените Selection на tbl.Range и всё.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 26.03.2010, 21:14   #20
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

ой прошу прощения тут все просто tbl.Range.Font.Size = 10! я просто так пробовал и выдал ошибку, но она не в этой строке была...
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Растянуть текст по ширине в PowerPoint RIO Microsoft Office Word 1 06.03.2010 23:40
SQL и Python - удаление/вставка таблиц и эл-ов, доступ к БД Graf Xandr Фриланс 2 24.02.2010 01:52
Компонент label c выравниванием по ширине Polotenchik Компоненты Delphi 1 18.02.2010 16:31
текст в richedit по ширине *Devil* Компоненты Delphi 1 15.06.2007 16:27
выравнивание текста по ширине Алёна Общие вопросы Delphi 6 18.04.2007 11:31