Следующий код будет делать это (проверено на Excel 2010).
Sub extractImgs()
Dim shp As Shape
Dim tempChart As String, wsName As String
wsName = ActiveSheet.Name
For Each shp In ActiveSheet.Shapes
If shp.Name Like "Picture*" Then
shp.Select
Charts.Add
ActiveChart.Location xlLocationAsObject, wsName
ActiveChart.ChartArea.Height = shp.Height
ActiveChart.ChartArea.Width = shp.Width
tempChart = Mid(ActiveChart.Name, Len(wsName) + 2, 100)
shp.Copy
ActiveChart.Paste
ActiveChart.Export Filename:="C:\images\" & shp.TopLeftCell.Offset(0, 1).Value & ".jpg", FilterName:="jpg"
ActiveSheet.Shapes(tempChart).Delete
End If
Next
End Sub
В случае, если вам необходимо начальное VBA интро: из листа с изображениями, щелкните правой кнопкой мыши на вкладке листа, а затем «Просмотр кода», а затем вставьте код.
Перед запуском кода обязательно создайте папку с именем «изображения» под C: \ (запустите ее, нажав F5, когда курсор находится внутри кода).
Сообщите нам код, который вы пробовали до сих пор – Siva