Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 17 ]
- Зарегистрирован: 04.04.2010
- Сообщений: 10
Тема: Массовое выделение элементов докумена (таблиц, рисунков)
Доброго времени суток!
Имеется документ, элементы которого (таблицы или рисунки) необходимо форматировать определенным образом. Для этого нужно массовое их выделение с последующим применением различных стилей. Пожалуйста помогите с макросами, который позволил бы выделить отдельно рисунки (и отдельно таблицы). Благодарю!
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Массовое выделение элементов докумена (таблиц, рисунков)
MsgBox$ "Количество таблиц в документе: " & ActiveDocument.Tables.Count
'выделить первую таблицу активного документа
ActiveDocument.Tables(1).Select
если надо несколько таблиц сразу надо узнать начало первой и конец второй и выделить, не смежные части в доке выделить никак
Count_рисунков = ActiveDocument.Shapes.Count
Count_рамок = ActiveDocument.Frames.Count
Выделять как таблицы
Отредактировано Ципихович Эндрю (28.02.2011 17:43:49)
- ЮВ
- генерал-лейтенант
- Неактивен
- Зарегистрирован: 28.07.2010
- Сообщений: 284
- Поблагодарили: 43
- За сообщение: 1
Re: Массовое выделение элементов докумена (таблиц, рисунков)
Ципихович Эндрю пишет:MsgBox$ "Количество таблиц в документе: " & ActiveDocument.Tables.Count
'выделить первую таблицу активного документа
ActiveDocument.Tables(1).Select
Я не программирую на VBA, поэтому предложение может оказаться неверным.
Подсчитать кол-во таблиц в документе
CountTab=ActiveDocument.Tables.Count
и потом в цикле их выделить
for i=1 to CountTab
ActiveDocument.Tables(i).Select
end
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Массовое выделение элементов докумена (таблиц, рисунков)
да всё верно, смотря что автору нужно
- Зарегистрирован: 04.04.2010
- Сообщений: 10
Re: Массовое выделение элементов докумена (таблиц, рисунков)
Всем спасибо!
ЮВ пишет:Ципихович Эндрю пишет:MsgBox$ "Количество таблиц в документе: " & ActiveDocument.Tables.Count
'выделить первую таблицу активного документа
ActiveDocument.Tables(1).Select
Я не программирую на VBA, поэтому предложение может оказаться неверным.
Подсчитать кол-во таблиц в документе
CountTab=ActiveDocument.Tables.Count
и потом в цикле их выделить
for i=1 to CountTab
ActiveDocument.Tables(i).Select
end
В данном случае выделяется таблицы друг за другом, но выделенная остается только полседняя!
Я думал, что можно одним макросом выделить все таблицы (т.е. это как при нажатом ctrl выделяю мышью таблицы в документе) и отформатировать их по своему усмотрению.
Отредактировано 1st (01.03.2011 19:27:36)
- ЮВ
- генерал-лейтенант
- Неактивен
- Зарегистрирован: 28.07.2010
- Сообщений: 284
- Поблагодарили: 43
Re: Массовое выделение элементов докумена (таблиц, рисунков)
1st пишет:Я думал, что можно одним макросом выделить все таблицы (т.е. при нажатом ctrl выделяю мышью таблицы в документе) и отформатировать их по своему усмотрению.
Если нажать Ctrl (программно) и запустить макрос - множественное выделение не выполняется?
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Массовое выделение элементов докумена (таблиц, рисунков)
Не парьтесь:
Я думал, что можно одним макросом выделить все таблицы (т.е. при нажатом ctrl выделяю мышью таблицы в документе) и отформатировать их по своему усмотрению.
Макрос это сделает если у Вас не 600-700 таблиц легко просто будет делать циклом или при условии, что эти таблицы идут следом одна за другой всё можно их выделить сразу все
- ЮВ
- генерал-лейтенант
- Неактивен
- Зарегистрирован: 28.07.2010
- Сообщений: 284
- Поблагодарили: 43
Re: Массовое выделение элементов докумена (таблиц, рисунков)
Ципихович Эндрю пишет:Не парьтесь:
Честно говоря, так и не понял - проблема решена или нет?
- Вождь
- Модератор
- Неактивен
- Зарегистрирован: 07.01.2010
- Сообщений: 745
- Поблагодарили: 181
Re: Массовое выделение элементов докумена (таблиц, рисунков)
Если изначально таблицы одного стиля, то делаем так:
ActiveDocument.Tables(1).Select
Application.Run "SelectSimilarFormatting"
Selection.Style = "Простая таблица 1"
Рисунки "в тексте" (InLineShapes) выбрать можно только по одному, а все рисунки "перед текстом" (Shapes) выделяем так:
ActiveDocument.Range.ShapeRange.Select
Для массовой обработки последних не обязательно их выбирать, можно и так:
ActiveDocument.Range.ShapeRange.Delete
Макросы под заказ и готовый пакет - mtdmacro.ru
- Зарегистрирован: 04.04.2010
- Сообщений: 10
Re: Массовое выделение элементов докумена (таблиц, рисунков)
ЮВ пишет:Честно говоря, так и не понял - проблема решена или нет?
Привет всем!
Вопрос актуален! Разбираюсь - читаю литературу по VBA. Может не понятен вопрос?
Имеется документ с множеством таблиц и рисунков. Мне нужно все таблицы в документе выровнять по ширине, текст в таблице по центру и т.д., т.е. применить определенный стиль для всех таблиц в документе. Искать, выделять и применять стиль для каждой? Очень большой документ, более 300 таблиц. Та же проблема и с рисунками.
Отредактировано 1st (03.03.2011 17:25:57)
- admin
- Администратор
- Неактивен
- Откуда: Земля
- Зарегистрирован: 15.12.2009
- Сообщений: 508
- Поблагодарили: 39
Re: Массовое выделение элементов докумена (таблиц, рисунков)
1st пишет:Мне нужно все таблицы в документе выровнять по ширине
Как пример: Как выровнять все таблицы по ширине окна.
- Зарегистрирован: 25.10.2011
- Сообщений: 2
Re: Массовое выделение элементов докумена (таблиц, рисунков)
День добрый.
Для меня сейчас актуален подвопрос текущего топика, а именно обработка параметра spacing для таблиц.
Так сложилось, что текст получен из html и все таблицы пришли с нулевым значением интервала между ячейками. На практике это приводит к появлению двойных границ каждой ячейки в таблице. Дабы этого избежать, параметр "Интервал между ячейками" можно отключить вручную. Однако... Таблиц то море.. А в макрос я могу записать только конкретное число большее либо равное нулю..
Есть ли возможность в VBA "снять галочку" с параметра spacing для каждой страницы?
Пример кода приложу, дабы не быть голословным (кусочно из этой темы):
Sub Tables()
'
'
'
Dim i As Integer
Dim Acount As Integer
Acount = ActiveDocument.Tables.count
For i = 1 To Acount
ActiveDocument.Tables(i).Spacing = 0 'приводит к появлению сдвоенных границ :(
Next
End Sub
- Зарегистрирован: 25.10.2011
- Сообщений: 2
Re: Массовое выделение элементов докумена (таблиц, рисунков)
Попробовал на чистом документе -> Создал произвольную таблицу (по умолчанию параметр/галочка Интервалы между ячейками отключен) -> Запустил процесс создания макроса -> Сначала активировал интервалы, потом снял.
Автоматический код привожу ниже:
Sub a_111()
'
'
'
With Selection.Tables(1)
.TopPadding = CentimetersToPoints(0)
.BottomPadding = CentimetersToPoints(0)
.LeftPadding = CentimetersToPoints(0.19)
.RightPadding = CentimetersToPoints(0.19)
.Spacing = CentimetersToPoints(0.04)
.AllowPageBreaks = True
.AllowAutoFit = True
End With
With Selection.Tables(1)
.TopPadding = CentimetersToPoints(0)
.BottomPadding = CentimetersToPoints(0)
.LeftPadding = CentimetersToPoints(0.19)
.RightPadding = CentimetersToPoints(0.19)
.Spacing = 0
.AllowPageBreaks = True
.AllowAutoFit = True
End With
End Sub
Как видно, единственным отличаем является параметр "Spacing". Однако при выставлении его в 0 = параметр не деактивируется, а выставляется в нулевое значение ==> сдвоенные границы, что визуально сильно "карявит" документ..
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Массовое выделение элементов докумена (таблиц, рисунков)
не пойму кинули в документ 1 таблицу
сделали
ActiveDocument.Tables(1).Spacing = 10
вернули
ActiveDocument.Tables(1).Spacing = 0
Всё делается, всё возвращается, а про ту что с нета скачана ничего не знаю, там могут бытьтакие чудеса
- Slamzor
- сержант
- Неактивен
- Зарегистрирован: 13.12.2012
- Сообщений: 32
Re: Массовое выделение элементов докумена (таблиц, рисунков)
Рисунки "в тексте" (InLineShapes) выбрать можно только по одному
А как можно такие рисунки отделить и применить к ним форматирование?
Если на примере, то есть в документе такие рисунки: одни крупные к ним идет подпись из названия. Другие мелкие, размещены внутри текста. Нужно крупные рисунки разместить по центру, а мелкие не трогать.
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
- За сообщение: 1
Re: Массовое выделение элементов докумена (таблиц, рисунков)
Можно отобрать, например, по высоте или ширине
Dim oInShp As InlineShape
For Each oInShp In ActiveDocument.InlineShapes
If oInShp.Height > 100 Then
oInShp.Range.Paragraphs.First.Alignment = wdAlignParagraphCenter
End If
Next
Лучше день потерять — потом за пять минут долететь!
- Slamzor
- сержант
- Неактивен
- Зарегистрирован: 13.12.2012
- Сообщений: 32
Re: Массовое выделение элементов докумена (таблиц, рисунков)
Спасибо большое!
А как можно тогда с таблицами поступить? Есть в документе два вида таблиц. Первый вид: имеет шапку сбоку, второй шапку сверху. Нужно второй вид вид таблиц изменить: 1) шапку по центру дать 2) Внутри весь текст 12 шрифт задать.
Сообщений [ 17 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Массовое выделение элементов докумена (таблиц, рисунков)
Если у вам часто приходится работать с различными текстами, писать и обрабатывать их, то, скорей всего, у вас установлен редактор Microsoft Word. На портале о Microsoft Office Word вы узнаете про: код активации установки ms offis 2007.
Какая бы версия программы у вас ни стояла, вряд ли вы используете больше двадцати процентов того, что эта программа может. На портале о Microsoft Office Word вы узнаете про: как убрать линию из таблицы в ворде.
Если желаете узнать больше о работе в редакторе, то посетите форум Ворд Эксперт. Это русскоязычный сайт с доступным интерфейсом, простой регистрацией и множеством полезнейшей информации. Наш сайт о Microsoft Office Word даст ответ про: что сделать чтоб файл в microsoft word повернулся.
Портал разработан специально для пользователей редактора Microsoft Word. Зарегистрировавшись на портале, вы узнаете много новой и нужной информации, даже если вы давно и часто работаете в приложении. Наш сайт о Microsoft Office Word даст ответ про: ворд непечатные символы.
На сайте представлена разнообразная литература и ответы на часто возникающие у пользователей Microsoft Word вопросы. На портале о Microsoft Office Word вы узнаете про: отступ первой строки абзаца гост.
Вы легко научитесь оптимизировать свою работу и даже писать макросы. Готовые решения часто возникающих проблем вы можете найти в специальных разделах на сайте. На портале о Microsoft Office Word вы узнаете про: сохранить изменения нет.
При трудностях в работе с редактором или создании макросов вы всегда можете обратиться за помощью к опытным пользователям. На портале о Microsoft Office Word вы узнаете про: активация ворда.
Можно задать любой вопрос о настройке, форматировании и автоматизации работы Microsoft Word, найти готовое решение или оставить заявку на написание макроса. На портале о Microsoft Office Word вы узнаете про: как подчеркивать пробелы в word.