【问题标题】:Export Only Slides Within a Certain Section in Powerpoint VBA仅导出 Powerpoint VBA 中某个部分内的幻灯片
【发布时间】:2019-02-02 03:13:13
【问题描述】:

如果幻灯片符合某些条件(即幻灯片中有特定的命名形状),我有将幻灯片导出为 PNG 文件的代码。有时幻灯片没有任何已知的形状名称,但它们将位于命名的“部分”内。

我知道我必须以某种方式使用 ActivePresentation.SectionProperties,但我不知道该怎么做。我已经按照下面的代码尝试了一些事情,但没有成功。在此示例中,该部分的名称是“Test”。会有许多不同的部分,我需要为其中几个部分执行此操作。任何帮助将非常感激。谢谢!

Dim sld As Slide
i = 1

For Each sld in ActivePresentation.Slides

If ActivePresentation.SectionProperties.Name("Test") Then
   ActivePresentation.Slides(i).Export filenamepng & "TEST" & i & ".png", "PNG"
End If

i = i + 1

Next

【问题讨论】:

    标签: vba powerpoint


    【解决方案1】:

    @Hunter21188

    我想这就是你需要的。

    您将检查每张幻灯片属于哪个部分。 在此之后,您验证它是否来自“测试”部分,如果是真的陷阱!导出。

    观察。函数将SectionIndex从Slide Atribute转换为SectionName,它不在Slides集合中。

    Sub Test_Export()
    
    Dim sld As Slide
    i = 1
    
    DesiredSection = SectionIndexOf("Test")
    
    For Each sld In ActivePresentation.Slides
    
    If sld.sectionIndex = DesiredSection Then
       ActivePresentation.Slides(i).Export filenamepng & "TEST" & i & ".png", "PNG"
    End If
    
    i = i + 1
    
    Next
    
    
    End Sub
    
    Function SectionIndexOf(sSectionName As String) As Long
        Dim x As Long
        With ActivePresentation.SectionProperties
            For x = 1 To .Count
                If .Name(x) = sSectionName Then
                    SectionIndexOf = x
                End If
            Next
        End With
    End Function
    

    【讨论】:

    • 好答案(投赞成票!)。几个快速观察:您不需要变量 i - 只需使用 sld.SlideNumber 这样您就不必增加任何内容(我知道您遵循 OP 的代码格式,这只是一个观察);我还建议始终使用Option Explicit 来声明所有变量以跟踪您在做什么。
    • @PeterT 感谢您的评论。我会记住这一点。我有变量i 的原因是因为我希望它根据该部分中的幻灯片数量在文件名的末尾附加一个数字。我这样做的方式不起作用,它确实只是使用幻灯片编号。仍在努力解决这个问题,因此该部分中的第一张幻灯片的名称末尾有 1,第二张幻灯片的名称末尾有 2,依此类推——无论幻灯片编号是什么。
    • @PeterT 除非有使用 sld.SlideNumber 的正当理由,否则最好使用 sld.SlideIndex。 SlideIndex 返回演示文稿中幻灯片的序号(即,第 42 张幻灯片也总是 SlideIndex=42)。 SlideNumber 的可预测性较差,因为用户可以设置起始编号,因此如果用户将起始编号设置为 42,则第二张幻灯片将返回 SlideNumber = 43。当您需要知道何时出现的数字时,SlideNumber 很有用幻灯片编号(即在页脚中)处于活动状态。
    猜你喜欢
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 2012-09-15
    相关资源
    最近更新 更多