使用VBA for PowerPoint在编辑框中填充文本

使用VBA for PowerPoint在编辑框中填充文本,vba,plugins,ms-office,powerpoint,ribbon,Vba,Plugins,Ms Office,Powerpoint,Ribbon,我是VBA power point插件开发新手。我已经使用CustomUI编辑器成功地在PowerPoint功能区中添加了editBox。后来,我遇到了通过VBA代码向editBox动态添加文本的困难。 我看到了一些解决方案,如下面提到的流程: 写加载函数 使用GetText方法,可以使用Invalidate函数在编辑框中输入文本 但我的情况并非如此。 是否有人可以帮助/指导我使用VBA代码在PowerPoint功能区的编辑框中填充数据 为了便于参考,我发布了下面的代码。请查收 Option E

我是VBA power point插件开发新手。我已经使用CustomUI编辑器成功地在PowerPoint功能区中添加了editBox。后来,我遇到了通过VBA代码向editBox动态添加文本的困难。 我看到了一些解决方案,如下面提到的流程:

  • 写加载函数
  • 使用GetText方法,可以使用Invalidate函数在编辑框中输入文本
  • 但我的情况并非如此。 是否有人可以帮助/指导我使用VBA代码在PowerPoint功能区的编辑框中填充数据

    为了便于参考,我发布了下面的代码。请查收

    Option Explicit
    
    Dim sRename As String
    Dim RibbonUI As IRibbonUI
    
    Sub OnSlideLoad(ribbon As IRibbonUI)
    Set RibbonUI = ribbon
    Set sRename = "checking"
    End Sub
    
    Sub Height_onChange(control As IRibbonControl, text As String)
        MsgBox text
    End Sub
    
    Sub Width_onChange(control As IRibbonControl, text As String)
        MsgBox text
    End Sub
    
    Sub Height_getText(control As IRibbonControl, ByRef returnedVal)
        returnedVal = sRename
    End Sub
    
    Sub Width_getText(control As IRibbonControl, ByRef returnedVal)
        returnedVal = sRename
    End Sub
    
    Sub ButtonClick()
        RibbonUI.InvalidateControl ("boxHeight")
    End Sub
    

    谢谢你们的支持,我找到了解决办法。 要在功能区中动态更新Excel/PowerPoint中的editBox,我们需要在PowerPoint的XML布局中指定回调函数。 编写脚本时必须实现相同的功能。 在我的例子中,我发现VBA函数名与XML布局函数名发生了变化 因此,不会触发回调功能。
    我已经正确地修改了它们,现在它工作正常。

    请发布到目前为止您编写的代码,并指出哪一行生成了错误消息,如果有。@JohnKorchok我已经更新了代码供您参考,请检查您还需要提供功能区xml代码以将编辑框添加到PowerPoint。是否调用了
    Width\u getText
    ?尝试先运行MsgBox以查看是否调用了它,然后将
    returnedVal
    设置为固定字符串(如“hello”),而不是使用
    sRename
    ——它没有正确使用。