在ms office文档中,我已经嵌入/插入了一个外部文档(对象)(在我的情况下为PDF)。
打开文档后,当我点击PDF对象图标时,它会打开嵌入其中的PDF文件。
使用VBA / Macro我想做同样的事情,我必须运行一个宏,它将打开嵌入的PDF文件(不点击PDF图标)。
有可能吗?
谢谢,
答案 0 :(得分:7)
<强> Excel中:强>
您可以从OLEObject
OLEObjects
获得Worksheet
。请参阅OLEObjects
- https://msdn.microsoft.com/en-us/library/office/ff840244.aspx,OLEObject
- https://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.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.aspx,Shapes
- https://msdn.microsoft.com/en-us/library/office/ff845240.aspx,Shape
- https://msdn.microsoft.com/en-us/library/office/ff196943.aspx,OLEFormat
- 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