使用VBA在Excel中打开一个embedded对象

在一个MS Office文档中,我embedded/插入了一个外部文档(对象)(在我的情况下是PDF)。

打开文档后,点击PDF对象图标,打开embedded的PDF文件。

使用VBA /macros我想要做同样的事情,在哪里我将不得不运行一个macros,它将打开embedded的PDF文件(无需点击PDF ICON)。

可能吗?

谢谢,

Excel中:

您可以从WorksheetOLEObjects获得OLEObject 。 请参阅OLEObjectshttps://msdn.microsoft.com/en-us/library/office/ff840244.aspx,OLEObjecthttps://msdn.microsoft.com/en-us/library/office/ff838421.aspx,OLEObject成员 – https://msdn.microsoft.com/EN-US/library/office/ff841208.aspx

有一个方法Verb有动词打开对象。 请参阅https://msdn.microsoft.com/EN-US/library/office/ff838827.aspxVerb 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 

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

字:

在Word中,它取决于embedded对象是InlineShape还是Shape 。 而且没有OLEObjects集合。 所以你必须处理Shape.OLEFormat 。 请参阅InlineShapeshttps://msdn.microsoft.com/en-us/library/office/ff822592.aspxShapeshttps://msdn.microsoft.com/en-us/library/office/ff845240.aspx,Shapehttps://msdn.microsoft.com/en-us/library/office/ff196943.aspx,OLEFormathttps://msdn.microsoft.com/EN-US/library/office/ff197153.aspx

例:

 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 

总之,当你已经知道你指的是哪个对象时:

高强

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

 ActiveDocument.InlineShapes(1).OLEFormat.Open