【问题标题】:How to insert column in powerpoint using VBA如何使用 VBA 在 powerpoint 中插入列
【发布时间】:2013-04-05 09:02:23
【问题描述】:

问题有点棘手,我用谷歌搜索了一个链接http://joelblogs.co.uk/2010/08/13/automatically-create-summary-slides-in-powerpoint-2010/ 和 VBA 代码,它可以帮助我在单父幻灯片中插入一个演示文稿的所有其他幻灯片的标题摘要。 代码工作正常,但是当带有标题的幻灯片数量超过 30 或 50 时,目录父幻灯片无法容纳整个标题名称,因为名称将被隐藏并超出幻灯片演示。 因此,我想确认是否有任何 VBA 代码通过 VBA 在目录幻灯片中将摘要名称的内容分配到三列?

【问题讨论】:

    标签: vba powerpoint


    【解决方案1】:

    根据您有示例的链接,您需要在宏的 and 处添加该代码:

    With summary.Shapes(2).TextFrame2
        .Column.Number = 3
    End With
    

    在摘要文本框中设置了 3 列。 请记住,您可能还需要设置字体大小,以将文本保留在文本框中。

    其他信息:我看到的是,只要您将更多文本放入摘要形状(在我的示例中为Shapes(2)),字体大小就会发生变化(减小)。然后,您可以跟踪字体大小以检查是否应该增加列数。这是一个例子:

    With summary.Shapes(2).TextFrame2
        If .TextRange.Font.Size < 20 Then
            'additionally check here if max approved column numbers is not exceeded.
            .Column.Number = .Column.Number + 1
        End If
    End With
    

    这是我完整的基本测试代码(可以为任何新的空演示文稿运行):

    Sub test_loop()
        Dim summary As Slide
        Set summary = ActivePresentation.Slides.Add(1, ppLayoutText)
    
        Dim enterText as string
    Do
        enterText = InputBox("Additional text to insert into Shape:")
    
    With summary.Shapes(2).TextFrame2
        .TextRange.Text = .TextRange.Text & Chr(10) & enterText
        If .TextRange.Font.Size < 20 Then
            .Column.Number = .Column.Number + 1
        End If
    End With
    
    Loop While enterText <> ""
    End Sub
    

    【讨论】:

    • 嗨,kazJaw,感谢这段出色的代码,它工作得很好,但是我想知道是否有任何代码可以根据标题名称的增加数量在幻灯片中添加列(即是更多的幻灯片),我怀疑这可以使用幻灯片中的表格来实现,请对此提出您的想法?
    • 嗨,kazJaw,您编写的代码非常好,但是我想知道相反,我们输入的字体大小或多或少并增加了列,字体大小是否有可能超过8,20,22,32这些参数下必须有一个数组来循环textframe2中的字体大小并增加列,是否可以调整代码来实现这一点?
    • 我宁愿做一些测试并用额外的ElseIf 条件扩展If 语句。数组和循环可能会有所帮助,但您的情况相当“静态”。
    • 嗨 kazjaw 感谢您的更新,但是我想知道下面的代码对 summary.Shapes(2).TextFrame2 .TextRange.Text = .TextRange.Text & Chr(10) & 的作用enterText If .TextRange.Font.Size
    • 该部分将新文本添加到摘要 TextShape 如果文本太大,则会自动调整字体大小。然后它检查当前的字体大小。如果当前字体大小小于 20,它会 向该 TextShape 添加新列。最好的选择是使用 F8 运行该代码并检查发生了什么。你会明白的。
    猜你喜欢
    • 1970-01-01
    • 2018-10-07
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2020-09-09
    相关资源
    最近更新 更多