[CDR X5-X8] Определить наличие текста в открытом документе

  • Автор темы Автор темы Удалённый пользователь 513
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
У

Удалённый пользователь 513

Гость
Топикстартер
Прошу помощи: нужна функция для проверки открытого документа на наличие текста,
если есть/нет текста выдавать типа True/False.
 
Из корела или вообще из любой внешней программы?
 
Из корела, в скрипте. В открытом документе (активном).
 
.SelectableShapes - не найдёт залоченные тексты
 
Не мудрено, что не находит, у документа нет метода FindShapes
Странно что не ругается
 
Не мудрено, что не находит, у документа нет метода FindShapes
Странно что не ругается
Получается что нужно пройтись по всем страницам, разлочить все шейпы?
Код:
 For Each p In ActiveDocument.Pages
        p.Activate
        p.Shapes.All.Unlock
    Next p
if  ActiveDocument.SelectableShapes.FindShapes(Type:=cdrTextShape).Count = 0 then
...
Нельзя всё разлочить сразу в документе ActiveDocument.Shapes.All.Unlock ???
 
Последнее редактирование модератором:
Если бы у документа было свойство Shapes, то можно было бы и без разлочки искать в том то и дело.
Надо просто пройтись по страницам и на каждой найти текстовые шейпы вышеуказанным способом. Разлачивать не нужно.
 
Метод FindShapes ecть только у коллекции шейпов Shapes
 
Если бы у документа было свойство Shapes, то можно было бы и без разлочки искать в том то и дело.
Надо просто пройтись по страницам и на каждой найти текстовые шейпы вышеуказанным способом. Разлачивать не нужно.
Код:
For Each p In ActiveDocument.Pages
       p.Activate
       ntextobjects = ntextobjects + ActivePage.FindShapes(Type:=cdrTextShape).Count
Next p
if  ntextobjects = 0 then
...
Как-то так?
Код:
Sub Find1textobject()
For Each p In ActiveDocument.Pages
    p.Activate
    If ActivePage.FindShapes(Type:=cdrTextShape).Count > 0 Then
        Exit For
    End If
Next p
If ActivePage.FindShapes(Type:=cdrTextShape).Count > 0 Then
    MsgBox "Text object found in document."
Else
    MsgBox "Text object NOT found in document."
End If
End Sub
Или лучше так?
 
Да и так и так нормально, если работает ;)
 
Нет не нормально, у страницы нет метода FindShapes. Надо имхо ActivePage.Shapes.FindShapes... как то так
 
Статус
Закрыто для дальнейших ответов.