次のように、EPS 画像を PowerPoint スライドに挿入する VBA コードがあります。
Function InsertPicture(filename as String) As Shape
Dim curSlide As Integer
Dim oShp As Shape, gShp As Shape
curSlide = ActiveWindow.View.Slide.SlideIndex
With ActivePresentation.Slides(curSlide).Shapes
Set oShp = .AddPicture(filename, msoFalse, msoTrue, 0, 0)
' Convert (by ungrouping) from EPS to Microsoft Office drawing object
oShp.Ungroup.Name = "GroupEPS"
' Return the new Microsoft Office drawing object
Set InsertPicture = ActivePresentation.Slides(curSlide).Shapes("GroupEPS")
End With
End Sub
Excel の同等の画像挿入機能は次のとおりです。
ActiveSheet.Pictures.Insert(filename).Select
オブジェクトへの参照が必要な場合は、次のようにします。
Dim oPic as Object
Set oPic = ActiveSheet.Pictures.Insert(filename)
しかし、次の行でグループ化を解除しようとすると、エラー 438「オブジェクトはこのプロパティまたはメソッドをサポートしていません」が表示されます。
' For a selection
Selection.Ungroup
' For an object
oPic.Ungroup.Name = "GroupEPS"
ただし、シートに正しく挿入された画像を右クリックすると、Microsoft Office 描画オブジェクトへの変換を確認した後、正常にグループ化を解除できます。
UI ではグループ化を解除できるのに、Excel VBA では (PowerPoint VBA ではできるのに) そうではないのはなぜですか? また、これを回避する方法はありますか?