Option Explicit
Sub test()
Dim errorMessage As String
If Not ExportImage("c:\users\domenic\desktop\", "Image1.jpg", Worksheets("Sheet1").Shapes("Image1"), errorMessage) Then
MsgBox errorMessage, vbCritical, "Error"
Exit Sub
End If
MsgBox "Image exported successfully!", vbExclamation
End Sub
Function ExportImage(ByVal saveToFolder As String, ByVal saveAsFilename As String, ByVal shapeToExport As Shape, ByRef errorMessage As String) As Boolean
On Error GoTo errorHandler
If Right(saveToFolder, 1) <> "\" Then
saveToFolder = saveToFolder & "\"
End If
shapeToExport.Copy
Dim ws As Worksheet
Set ws = shapeToExport.Parent
With ws.ChartObjects.Add(Left:=0, Top:=0, Width:=shapeToExport.Width, Height:=shapeToExport.Height)
.Activate
With .Chart
.ChartArea.Format.Line.Visible = msoFalse
.Paste
.Export Filename:=saveToFolder & saveAsFilename
End With
.Delete
End With
ExportImage = True
Exit Function
errorHandler:
errorMessage = "Error " & Err.Number & ":" & vbCrLf & vbCrLf & Err.Description
ExportImage = False
End Function