在Powerpoint 2013功能区中创建打开超链接的按钮

时间:2014-07-31 14:33:23

标签: vba powerpoint powerpoint-vba

我想创建一个自动打开Powerpoint超链接的按钮。

在Powerpoint中创建超链接(插入 - >超链接)然后单击该超链接很容易。

我想跳过整个过程,只需要一个按钮打开一个超链接,而不是在我的演示文稿中有一个需要点击的超链接。

2 个答案:

答案 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