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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2009, 19:51   #1
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию Как узнать количество рисунков в документе?

Количество таблиц в документе можно узнать, что то там

tables.count.

А вот для рисунков как быть?
Busine2009 вне форума Ответить с цитированием
Старый 04.06.2009, 21:06   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Аналогично. Рисунки — это Shapes и InlineShapes
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 04.06.2009, 21:26   #3
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию

Я вроде искал что-то подобное, но не нашел.

Спасибо.
Busine2009 вне форума Ответить с цитированием
Старый 28.06.2009, 19:11   #4
akokin
Пользователь
 
Регистрация: 02.08.2008
Сообщений: 94
По умолчанию

Цитата:
Сообщение от Busine2009 Посмотреть сообщение
Я вроде искал что-то подобное, но не нашел.

Спасибо.
Вот макрос для граф.объектов типа InlineShape (не автофигуры!):
Код:
Sub picCount()
'Подсчет количества рисунков в документе (тип InlineShape)
If ActiveDocument.InlineShapes.Count < 1 Then
   MsgBox "Рисунков типа InlineShape в документе не обнаружено", vbInformation
Else
   Selection.TypeText Text:="Количество рисунков: " & ActiveDocument.InlineShapes.Count
End If
End Sub
akokin вне форума Ответить с цитированием
Старый 28.06.2009, 20:51   #5
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Или вот такой макросик...

Код:
Sub ListOfFigures() 'Подписывает рисунки InlineShapes
'и вставляет в начало их список (Название....Страница)'
' Макрос записан 28.06.2009 Customer'
Dim i As Long

With ActiveDocument
    For i = 1 To .InlineShapes.Count
    .InlineShapes(i).Select
    Selection.InsertCaption Label:="Рис.", Position:=wdCaptionPositionBelow
    Next
    
    Selection.HomeKey unit:=wdStory 'курсор - в начало файла'
    
        .TablesOfFigures.Add Range:=Selection.Range, Caption:="Рис.", _
            IncludeLabel:=True, _
            RightAlignPageNumbers:=True, _
            IncludePageNumbers:=True, _
            UseHyperlinks:=True
End With
End Sub
В качестве испытательного полигона прилагаю файл с моими же рисунками.

Квадратики (при просмотре непечатаемых знаков, Ctrl-Shift-8) говорят о том, что абзац с рисунком, при разбиении на страницы, не будет оторван от следующего абзаца (где его, этого рисунка, подпись).

И опять-таки, в документах на шаблоне Normal.dotm (а не Normal.dot), код не работает.
Вложения
Тип файла: doc RisList.doc (59.0 Кб, 29 просмотров)

Последний раз редактировалось Sasha_Smirnov; 29.06.2009 в 10:58. Причина: испытание в Word 2007.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 14.07.2009, 02:31   #6
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Посчёт фигур и рисунков Word в открытом документе

А вот этот работает! Вызов через альт-F8 в вышеприложенном файле.

Код:
Sub ShapesAccont()
Dim i As Long
On Error GoTo Notinline
Dim claud As InlineShape
    For Each claud In ActiveDocument.InlineShapes
    i = i + 1
    Next claud
MsgBox "InlineShape's quantity = " & i & _
" in the ActiveDocument"

Notinline: MsgBox _
"Количество фигур " & ActiveDocument.Shapes.Count & "."
End Sub
Sasha_Smirnov вне форума Ответить с цитированием
Старый 14.07.2009, 11:12   #7
garik64
Форумчанин
 
Регистрация: 09.07.2009
Сообщений: 111
По умолчанию

А зачем макрос?
Поиск "^g", птичка на "выделить все".
garik64 вне форума Ответить с цитированием
Старый 15.07.2009, 18:26   #8
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Зачем макрос

Макрос — это для развития темы!

Ваш способ тоже можно записать как макрос. Впрочем, он будет находить количество рисунков, вставленных ВНУТРЬ текста (так называемых InLineShapes — по щелчку они обрамляются рамкой с чёрными маркерами), но не найдёт «накладных» фигур (Shapes).

Оно и понятно: поиск работает только с текстом.
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать количество таблиц в базе udpflood БД в Delphi 2 27.03.2009 00:06
Как узнать количество выданных на печать страниц Bogood Общие вопросы Delphi 3 13.03.2009 17:29
Как узнать количество дисплеев и их разрешение crc83 Мультимедиа в Delphi 1 25.02.2009 01:11
Как узнать количество скачиваний файла с сайта? Dux PHP 34 02.02.2009 00:28
как мне узнать количество принятых сообщений на мыле vitalik007 Работа с сетью в Delphi 1 14.01.2008 22:13