首页 文章

在具有多个属性的VBA中添加文本框

提问于
浏览
0

我正在尝试使用VBA在powerpoint的幻灯片顶部创建一个文本框(关于那句话让我很难过) . 我在网上看到的很多例子看起来并不像他们使用“Option explicit”宏实践,因为我在示例中看到的一些变量没有声明或明确地输入 .

无论如何,在这一点上我只需要生成一个文本框,理想情况下为这个文本框获取某种名称,这样我就可以用它做一些事情,然后修改这个文本框的参数,比如字体大小 . 最终我将创建它,以便用户可以输入字符串值并创建自己的工作表,使用此作为模板 .

目前我正在努力解决这个问题 . myDocument是幻灯片,title是我已经分配的字符串 . 这绝对是我需要的,但我不能改变其他任何东西,比如字体大小 .

myDocument.Shapes.AddTextbox(msoTextOrientationHorizontal,Left:= 0,Top:= 10,Width:= 200,Height:= 50).TextFrame.TextRange.Text = title

如果我想将.Font.Size = 18添加到属性中,我似乎找不到迄今为止有效的方法 .

我已经看到了一些例子,他们使用with - end with语句并设置单独的属性,但是当我尝试创建一个形状然后修改单个属性时,我会得到错误(可能是因为形状没有字体属性) . 这是我一直试图用作指南的页面,但它没有多大帮助

http://www.ozgrid.com/forum/showthread.php?t=18611

我很遗憾如何使用文本框对象,如何跟踪它们或为它们指定名称,几乎所有关于它们的内容 . 这对我来说是一个全新的领域 . 任何帮助都会非常感激

1 回答

  • 1

    它将有助于理解PowerPoint中对象的层次结构 . 一旦你理解了这一点,你在对象模型中获得的大部分方法都会更有意义 .

    应用程序本身包含一个Presentations集合,每个打开的演示文稿都是其成员 .

    ActivePresentation是当前活动的任何一个演示文稿...即,具有焦点,接收鼠标点击/击键 .

    演示文稿包含幻灯片幻灯片包含形状大多数(尽管不是全部)形状可以具有TextFrame TextFrame包含TextRange并且TextRange包含文本(并且您还将格式应用于文本范围)

    所以:

    Option Explicit  
    ' but of course!
    
    Sub MakeATitle()
    
        Dim oSh As Shape
        Dim myDocument As Presentation
        Dim oSl As Slide
        Dim sTitle As String
        ' I wouldn't use Title as a variable; it may be a reserved word
    
        sTitle = "Here is your title"
    
        Set myDocument = ActivePresentation
    
        ' I'm putting the title on slide 1
        ' Change this as needed, of course
        Set oSl = myDocument.Slides(1)
    
        Set oSh = oSl.Shapes.AddTextbox(msoTextOrientationHorizontal, _
            Left:=0, Top:=10, Width:=200, Height:=50)
    
        With oSh.TextFrame.TextRange
            .Text = sTitle
            With .Font
                .Size = 24  ' points
                .Name = "Arial"
            End With    ' Font
        End With    ' TextRange
    End Sub
    

相关问题