Каким образом можно выполнить поиск изображения в ячейке Excel с использованием VBA?

Как можно улучшить код VBA для поиска вставленных изображений в Excel?
  • 17 апреля 2024 г. 9:39
Ответы на вопрос 2
Для выполнения поиска изображения в ячейке Excel с использованием VBA можно использовать следующий код:

```vba
Sub SearchImage()
    Dim pic As Picture
    For Each pic In ActiveSheet.Pictures
        If pic.TopLeftCell.Address = "$A$1" Then 'Замените "$A$1" на адрес ячейки, в которой вы ищете изображение
            MsgBox "Изображение найдено!"
            Exit Sub
        End If
    Next pic
    MsgBox "Изображение не найдено."
End Sub
```

Чтобы улучшить код VBA для поиска вставленных изображений в Excel, можно добавить дополнительную функциональность, например:

1. Добавить возможность искать изображение по его имени или категории.
2. Создать отчет с информацией о найденных изображениях, таких как их размер, позиция и другие свойства.
3. Добавить возможность отображать найденное изображение в новом окне или на другом листе.
4. Реализовать функцию автоматического выделения найденного изображения, чтобы пользователь мог быстро его увидеть.
5. Добавить возможность удалять найденные изображения или перемещать их на другие листы.
Может у тебя не картинки там. 
Проверь сначала, сколько вообще шейпов находит: MsgBox ws.Shapes.Count ,
потом проверь их типы: MsgBox shp.Type

У меня работает (Excel 2010):
Sub findImages()
    Dim ws As Worksheet
    Dim shp As Shape
    
    For Each ws In ThisWorkbook.Worksheets
        For Each shp In ws.Shapes
            If shp.Type = msoPicture Then
            MsgBox "Sheet:" & shp.TopLeftCell.Worksheet.Name & "  R:" & shp.TopLeftCell.Row & "  C:" & shp.TopLeftCell.Column
            End If
        Next shp
    Next ws
End Sub
Похожие вопросы