使用VBA在Excel中打开嵌入对象

时间:2015-12-27 10:02:30

标签: excel vba excel-vba

在ms office文档中,我已经嵌入/插入了一个外部文档(对象)(在我的情况下为PDF)。

打开文档后,当我点击PDF对象图标时,它会打开嵌入其中的PDF文件。

使用VBA / Macro我想做同样的事情,我必须运行一个宏,它将打开嵌入的PDF文件(不点击PDF图标)。

有可能吗?

谢谢,

2 个答案:

答案 0 :(得分:7)

<强> Excel中:

您可以从OLEObject OLEObjects获得Worksheet。请参阅OLEObjects - https://msdn.microsoft.com/en-us/library/office/ff840244.aspxOLEObject - https://msdn.microsoft.com/en-us/library/office/ff838421.aspxOLEObject成员 - https://msdn.microsoft.com/EN-US/library/office/ff841208.aspx

有一个方法Verb,它有一个用于打开对象的动词。请参阅https://msdn.microsoft.com/EN-US/library/office/ff838827.aspx - Verb s - https://msdn.microsoft.com/EN-US/library/office/ff820926.aspx

示例:

Sub test()
 With ActiveSheet
  Set o = .OLEObjects("Objekt 1")
  o.Verb xlVerbOpen
 End With
End Sub

“Objekt 1”是Excel工作表中对象的名称。该对象必须位于活动工作表中。

字符:

在Word中,它取决于嵌入对象是InlineShape还是Shape。并且没有OLEObjects集合。所以你必须处理Shape.OLEFormat。请参阅InlineShapes - https://msdn.microsoft.com/en-us/library/office/ff822592.aspxShapes - https://msdn.microsoft.com/en-us/library/office/ff845240.aspxShape - https://msdn.microsoft.com/en-us/library/office/ff196943.aspxOLEFormat - https://msdn.microsoft.com/EN-US/library/office/ff197153.aspx。< / p>

示例:

Sub test()

 With ActiveDocument
  Set oShape = .InlineShapes(1) 'The embedded object is the first InlineShape.
  'Set oShape = .Shapes(1) 'The embedded object is the first Shape.
  Set oOLEFormat = oShape.OLEFormat
  oOLEFormat.Open
 End With

End Sub

答案 1 :(得分:3)

简而言之,当您已经知道您所指的是哪个对象时:

<强> Excel中

Sheets("Sheet1").OLEObjects("Object 1").Activate

字符

ActiveDocument.InlineShapes(1).OLEFormat.Open