将PowerPoint用户输入文本框中的文本放入另一张幻灯片上的文本框中

时间:2018-09-23 23:19:02

标签: vba powerpoint

谁能告诉我如何从用户表单中的用户输入中获取文本,以填充到另一张幻灯片的文本框中?

目前,我对UserForm1提交按钮的代码如下:

sigmoid

我相信用户在GUI中键入的值存储在变量df.plot()中,但是无论如何尝试,都无法使文本显示在另一张幻灯片的文本框中。我尝试使用标签框和文本框,但是不知道正确的代码。

2 个答案:

答案 0 :(得分:0)

您的问题有很多东西需要解开。 Microsoft通过VBA花费最少的精力来公开PowerPoint对象模型。在Access,Excel,Outlook和Word中使用VBA时,您可以创建一些出色的解决方案。 PowerPoint,不是很多。

首先,按照ashleedawg的建议,应将Option Explicit添加到每个模块,类和表单代码。您可以通过以下方式将其设置为默认值:单击“工具”(在菜单上),选择“选项”,然后选中“需要变量声明”。

现在,通过从菜单中单击“插入”来创建一个模块,然后选择“模块”。这将创建一个新模块。在模块中,输入Public UserName As String。现在,这将使变量UserName可以在整个解决方案的任何位置访问。如果愿意的话,这是一个全局变量。我通常会调用一个包含我的modGobals的模块。

Option Explicit

Public UserName As String

现在输入表单代码。在幻灯片上创建文本框时,默认名称以TextBox开头,后跟空格和数字。您将要重命名文本框。为此,请转到幻灯片视图。在功能区上,确保显示“文件”部分。在最右边,您将看到一个名为“使用查找,替换,选择进行编辑”的区域。单击选择。从出现的下拉菜单中,单击“选择窗格...”。将出现选择窗格,您将在幻灯片上看到所有对象。当您单击不同的幻灯片对象时,它们将在选择窗格中突出显示。

现在,您已将文本框重命名为tbUserName之类的名称,则可以如下所示更新代码。

Option Explicit

Private pvSlide As Slide
Private pvShp As Shape

Private Sub CommandButton1_Click()

    UserName = TextBox1.Value

    'Assume that slide index 2 contains the text box you want to update
    Set pvSlide = ActivePresentation.Slides(2)

    'set the shape you're going to update
    Set pvShp = pvSlide.Shapes("tbUserName")

    'This is the fun part -- traversing the object tree to get to the
    'right property that so we can update the text box's value
    pvShp.TextFrame2.TextRange.Text = UserName

    Unload UserForm1
    'I'm not sure why you're executing this method.  So I commented it out
    'ActivePresentation.SlideShowWindow.View.Next

End Sub

运行用户窗体时,在文本框中输入文本,然后按命令按钮,您输入的文本将显示在幻灯片2的文本框中。

祝你好运,编码愉快

答案 1 :(得分:0)

据我了解,您只想修改以前的代码。 为此,只需写下$username = textBox1.value下面的内容:

yourtextBoxname.text = textBox1.text