我想创建一个自动打开Powerpoint超链接的按钮。
在Powerpoint中创建超链接(插入 - >超链接)然后单击该超链接很容易。
我想跳过整个过程,只需要一个按钮打开一个超链接,而不是在我的演示文稿中有一个需要点击的超链接。
答案 0 :(得分:1)
按钮的XML类似于:
<button id="myButton" label="Open Hyperlink"
imageMso="HyperlinkInsert"
size="large"
onAction="openHyperlink"
/>
当然,您需要修改文件的Ribbon XML;以上不是一个完整的功能区,只是所需按钮的节点。我还有一些关于修改功能区的问答here,否则有一些很好的例子,如果你谷歌为他们。大多数是Word或Excel,但适用相同的原则。如果您需要参考,请告诉我,我可以提供一些。
回调就像:
Sub openHyperlink(control As IRibbonControl)
'your code that opens the hyperlink goes in here, something like:
Dim ie as Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "http://google.com"
End Sub
要打开PDF而不是浏览器,请更改该过程:
Sub openHyperlink(control As IRibbonControl)
Dim acroPath As String
Dim filePath As String
acroPath = "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" 'Modify as needed
filePath = "c:\users\me\file.pdf" 'Modify as needed
Shell acroPath & " " & filePath, vbNormalFocus
End Sub
答案 1 :(得分:1)
您可以使用ShellExecute API在默认应用中打开该文档扩展名的任何文档。这是一个简化的黑客攻击:
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpszOp As String, _
ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal LpszDir As String, ByVal FsShowCmd As Long) _
As Long
Function ShellEx(sFile As String) As Long
ShellEx = ShellExecute(&O0, "Open", sFile, "", "C:\", 1)
End Function
Sub Test()
Debug.Print ShellEx("path to file goes here")
End Sub
此处包含所有选项的更详细版本: http://support.microsoft.com/kb/170918