在PrintOptions下添加范围并在变量中确定它

时间:2019-04-26 12:11:23

标签: vba powerpoint powerpoint-vba

我能够添加一个范围,但无法添加多个范围并在变量中确定它:

Set PR = ActivePresentation.PrintOptions.Ranges.Add(1, 1)

是否可以在上述范围内添加更多范围?

我尝试了以下有效的方法,但无法将其设置为等于PR

With ActivePresentation
    With .PrintOptions
    .RangeType = ppPrintSlideRange
            With .Ranges
            .ClearAll
            .Add 1, 1
            .Add 3, 3
            End With
    End With
    .PrintOut
End With

是否可以在变量下确定上述范围?

谢谢。

1 个答案:

答案 0 :(得分:2)

ActivePresentation.PrintOptions.Ranges.Add添加一个范围,并返回一个PrintRange对象。它不能容纳多个范围,因为它代表一个范围。如果您有多个范围,则有多个PrintRange对象,因此您可以访问它们并使用PrintRanges集合。

PrintRanges object (PowerPoint)

指定的所有PrintRange对象的集合 介绍。每个 PrintRange 对象代表一个范围 连续的幻灯片或要打印的页面。

示例使用Ranges属性返回 PrintRanges 集合。

因此,当您添加多个范围时:

With ActivePresentation
    With .PrintOptions
        .RangeType = ppPrintSlideRange
        With .Ranges
            .ClearAll
            .Add 1, 1
            .Add 3, 3
        End With
    End With
End With

然后将所有这些范围都包含到ActivePresentation.PrintOptions.Ranges集合中。

For Each Range In ActivePresentation.PrintOptions.Ranges
    Debug.Print TypeName(Range)
Next Range

更新

如果您要ExportAsFixedFormat导出特定的幻灯片,则可以选择要导出的幻灯片并将ppPrintSelection用于RangeType参数:

' Select slides 1 and 3
ActivePresentation.Slides.Range(Array(1, 3)).Select

' Export PDF with selected slides
ActivePresentation.ExportAsFixedFormat _
    Path:=savePath, _
    FixedFormatType:=ppFixedFormatTypePDF, _
    RangeType:=ppPrintSelection