1

Тема: Отловить удаление картинки в документе

Здравствуйте,
Документ открывается в OLE CONTROL в приложении Power Builder.
Программно в него добавляется картинка с подписью пациента и сопутствующая информация.
Пользователь может удалить картинку с подписью. Нужно в этом случае добавить соответствующий текст в документ.

Как можно это отловить, например при сохранении документа?
Можно ли при добавлении картинки присвоить ей идентификатор и перед сохранением поискать?
Подскажите идею,в VBA не силен.

2

Re: Отловить удаление картинки в документе

Добрый день,
К сожалению, OLE CONTROL и Power Builder не владею.
Могу только сказать о VBA Word.
В файле Word картинки входят в коллекцию InlineShapes.
В следующем макросе производится перебор всех элементов коллекции InlineShapes:

Sub ScalePic()
    Dim inshp As InlineShape
    For i = 1 To ActiveDocument.InlineShapes.Count
        Set inshp = ActiveDocument.InlineShapes(i)
        MsgBox ("Номер картинки: " & CStr(i) & vbCr & "Тип картинки: " & inshp.Type)
    Next
End Sub

Картинки чаще всего имеют тип 3, но также могут встретиться картинки с типами 4, 12, 13.

В принципе, у картинки есть свойство Title (название), но обычно оно является пустым. Для заполнения свойства Title, вероятно, нужно выполнить соответствующее действие в макросе при размещении картинки.
А так, картинки нумеруются в указанной коллекции по порядку. Может быть, это поможет Вам отследить удаление картинки (если в файлах картинок немного).

Также Вы можете контролировать свойство коллекции InlineShapes.Count (количество элементов коллекции). Если оно уменьшилось, значит картинка была удалена.

Что касается специальных событий, связанных с удалением картинки в Word, то мне они неизвестны.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

3

Re: Отловить удаление картинки в документе

pvn пишет:

...Как можно это отловить, например при сохранении документа...

Так вы отлавливаете момент сохранения документа или это вы для примера? smile

То есть, либо ваш код работает по принципу "создал документ Word и отключился", а дальше все происходит в Word, либо вы полностью контролируете процесс, вплоть до закрытия документа. В первом случае отследить удаление картинки будет проблематично.

Макросы под заказ и готовый пакет - mtdmacro.ru