首页 文章

用于更改PowerPoint 2003演示文稿的VBA-活动不是新的

提问于
浏览
1

如果我在PowerPoint幻灯片上设置了一个模板,其中包含我需要的所有文本框,我使用什么Visual Basic在这些文本框中输入我想要的文本?

我更容易使用模板,因为这些ppt简报包含(或需要包含)大量数据:

  • 如何在这些文本框中输入文本

  • 如何更改特定文本框的字体,大小,字体等?

  • 有没有办法确定文本框/形状的"name"("text box 52"),而不是在宏之后录制宏并选择文本框,只是为了从选择中获取对象名称?

  • 如果我使用宏来确定vba,为什么不能将其用作vba?我从宏中获得的vb似乎有active.selection,它不知道要选择什么????我认为

我想要做的是使用模板从访问创建最终游戏ppt . 在访问表单上,我想要有多个文本框,将信息传递到幻灯片上的ppt文本框中 .

我知道如何从访问中启动模板(或新的演示文稿),以及如何添加新项目(幻灯片,图形,图表,文本),但我不知道如何更改预先存在的文本框!

请帮忙......我的工作就像昨天一样需要这个!

一如既往地谢谢!

2 回答

  • 0

    您可以按名称访问形状,如下所示:

    Dim oSlide As Slide
    Set oSlide = ActivePresentation.Slides(1)
    
    Dim oShape As Shape
    Set oShape = oSlide.Shapes(strShapeName)
    
    Dim oTextRange As TextRange
    Set oTextRange = oShape.TextFrame.TextRange
    
    oTextRange.Text = "this is some text"
    
    oTextRange.Font.Bold = msoTrue
    

    请注意,无论您如何正确记录的宏将使用 Selection 对象,但这很容易修复 - 只需获取对相应的 Shape 对象(或其他)的引用,然后在生成的代码中替换它 .

    因此,例如,如果用于更改形状填充颜色的录制宏是这样的:

    With ActiveWindow.Selection.ShapeRange
        .Fill.Visible = msoTrue
        .Fill.Solid
        .Fill.ForeColor.RGB = RGB(255, 0, 0)
        .Fill.Transparency = 0#
    End With
    

    ...并且您希望将填充颜色应用于已经引用为 oShape 的形状,然后将代码更改为:

    With oShape
        .Fill.Visible = msoTrue
        .Fill.Solid
        .Fill.ForeColor.RGB = RGB(255, 0, 0)
        .Fill.Transparency = 0#
    End With
    

    要获取形状的当前名称,可以在VBA编辑器的“立即”窗口中输入:

    ?ActiveWindow.Selection.ShapeRange(1).Name
    

    您可以非常轻松地将其转换为(单个)宏:

    Sub ShowMeTheName()
        MsgBox ActiveWindow.Selection.ShapeRange(1).Name
    End Sub
    

    请注意,我个人会将形状重命名为有意义的内容,而不是使用默认名称 . 只需在即时窗口中执行此操作:

    ActiveWindow.Selection.ShapeRange(1).Name = "MyName"
    

    ...或创建一个宏来提示输入名称 .

  • 2

    当我需要自动化Word或Excel(我认识或使用的任何人都没有使用PowerPoint)时,我打开有问题的应用程序,启用宏录制并执行我想要自动执行的任务 . 然后我使用生成的代码作为我的Access代码的基础 . 它通常是一个非常简单的过程,有时像复制和粘贴一样简单,然后使用我在Access中使用的应用程序对象预先添加每一行 .

    如果我必须做你正在做的事情,那就是我开始的方式,通过记录交互式执行的任务,然后尝试代码的哪些部分是必不可少的 .

相关问题