Тема: Макрос для выделения всех таблиц в документе
Добрый день! Помогите, пожалуйста, с созданием макроса для выделения всех таблиц в документе. Заранее спасибо!
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Добрый день! Помогите, пожалуйста, с созданием макроса для выделения всех таблиц в документе. Заранее спасибо!
Добрый день! Помогите, пожалуйста, с созданием макроса для выделения всех таблиц в документе. Заранее спасибо!
Если под выделением вы понимаете операцию выделения текста (нажать курсор, затем двигать его вправо или влево, не отжимая клавишу, затем отжать, в результате чего указанный таким образом текст выделен), то вручную это можно сделать (удерживая нажатой клавишу Ctrl, а через VBA - нельзя. Подобные вопросы уже рассматривались (напр., см. http://wordexpert.ru/forum/viewtopic.php?id=693).
Если вы хотите в макросе выделять таблицы для их обработки, то следует это делать в цикле, без выделения какого-либо объекта и используя либо объект Table, либо, напр., объект Table.Range. И затем уже в очередном таком объекте выполнять нужную обработку. Например, для изменения размера в шрифта во всех таблицах можно применить такой макрос:
Sub ChangeFontSizeInTables()
Dim tbl As Table
Dim tblrg As Range
For Each tbl In ActiveDocument.Tables
Set tblrg = tbl.Range
tblrg.Font.Size = 14
Set tblrg = Nothing
Next
End Sub
Именно, под выделением имелось в виду, то как бы таблицы выделялисьс зажатым СTRL по очереди.
Если нельзя через VBA, то где тогда можно просмотреть список всех редактируемых параметров, связанных с форматирование таблиц, и их правильную запись в VBA?
Именно, под выделением имелось в виду, то как бы таблицы выделялисьс зажатым СTRL по очереди.
Если нельзя через VBA, то где тогда можно просмотреть список всех редактируемых параметров, связанных с форматирование таблиц, и их правильную запись в VBA?
Вам следует почитать объектную модель Word, напр., внешняя ссылка Там рассмотрены объекты, свойства, методы.
Для изучения "вживую" возможных атрибутов объектов я поступаю так: отображаю в VBA панель Locals (View > Locals Window). Затем в VBA-коде ставлю точку останова после оператора, в котором назначается объект. Для такого способа может сгодиться любой искусственный оператор присваивания, напр.
Set rg = Selection.Range.Paragraphs(1).Range
o = 0
вот как раз на операторе "o = 0" я и ставлю останов. При исполнении макрос останавливается на этом операторе. Тогда я в панели Locals смотрю дерево всех свойств объекта rg, который в приведенном примере соответствует диапазону первого абзаца из числа выделенных в тексте на момент исполнения оператора.
Некоторые атрибуты объектов имеют признак "только чтение" (т.е., изменить их значение через VBA нельзя), а узнать, какие именно, опять-таки можно, только читая документацию по объектной модели. Там же можно узнать методы и ознакомиться с примерами применения.
. . .
Вам следует почитать объектную модель Word, напр., внешняя ссылка
. . .
Более внятное изложение в внешняя ссылка
Кстати, там и про таблицы есть
внешняя ссылка
yshindin пишет:. . .
Вам следует почитать объектную модель Word, напр., внешняя ссылка
. . .Более внятное изложение в внешняя ссылка
Кстати, там и про таблицы есть
внешняя ссылка
Прошу прощения, там материал в основном для VB.Net, а не VBA.
Вот стартовая ссылка для Word 2010:
внешняя ссылка
Там описание всех объектов с примерами.
. . .
Кстати, там и про таблицы есть
. . .
Вот нашел VBA-примеры про таблицы.
внешняя ссылка
Материалов много, но всегда следует учитывать версию Word.
Как правило, материалы для более старой версии должны корректно работать и в более поздней.
Спасибо огромное! Очень помогло! Теперь можна работать)
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться