- Set img = Sheets("test").Shapes(1).PictureFormat
+ Set img = Sheets("test").Shapes(1).DrawingObject
SavePicture の第一引数が IPictureDisp なので、Picture なら出来るかと思いましたが、ダメでした。
ネットを探したところ、下記サイトにあったコードを利用するとセーブできることを確認しました。
Sub SaveImage()
Dim shp As Shape
On Error Resume Next
Set shp = Sheets("test").Shapes(1)
If Err.Number = 0 Then
On Error GoTo -1
SavePicture PictureFromShape(shp), ThisWorkbook.Path & "\testpic.jpg"
MsgBox "画像が保存されました!"
End If
On Error GoTo -1
End Sub
関数PictureFromShape
は、下記サイトの中央あたりにあるPicturesAndShapes module:
のコードをそのまま利用しました。