VBA到Powerpoint。检查图像是否存在,如果没有引入无图像

时间:2016-08-10 04:54:14

标签: powerpoint-vba

我有点混乱。

我有这个代码将属性的图像引入PowerPoint。

myDocument.Shapes("PropertyPic").Fill.Visible = msoTrue
    myDocument.Shapes("PropertyPic").Fill.UserPicture PicLink & rs.Fields("PropertyName").Value & a & rs.Fields("PropertyId").Value & b

但是,如果pic不存在,我需要添加一些代码来使用NoImage文件。我尝试过使用On Error Goto错误处理程序。但它无法正常工作。有人可以帮我找一个If then Else吗?

2 个答案:

答案 0 :(得分:0)

其中一种方法可能是尝试设置对形状的引用并以这种方式管理错误。

Dim oShp As Shape
On Error Resume Next
Set oShp = myDocument.Shapes("PropertyPic")
If Err Then
  ' set no image
Else
  With oShp
    .Fill.Visible = msoTrue
    .Fill.UserPicture PicLink & _
    rs.Fields("PropertyName").Value & a & _ 
    rs.Fields("PropertyId").Value & b
  End With
End If
On Error Goto 0

答案 1 :(得分:0)

这是我使用的最终代码

我确保我使用的变量没有重复并声明为全局,因为我把它放在另一个模块中。

Sub PropertyPic()

Dim oShp As Shape

 Set myDocument = ActivePresentation.Slides.Item(1)

'On Error Resume Next
Set oShp = myDocument.Shapes("PropertyPic")
On Error GoTo Err1:
  With oShp
    '.Fill.Visible = msoTrue
    .Fill.UserPicture linkproperty & _
     rs.Fields("PropertyName").Value & a & _
    rs.Fields("propertyID").Value & b
Exit Sub
Err1:
myDocument.Shapes("PropertyPic").Fill.UserPicture NoImage
'Exit Sub
'If Err.Number <> 0 Then

Resume Next
'Else
  End With
'End If
On Error GoTo 0
End Sub