无法使用 VBScript 为 PowerPoint 打印设置 OutputType
Cant set OutputType for PowerPoint Print with VBScript
我可以通过 vbscript 打开 pptx 文件并打印它,但我终究无法获得 OutputType
集。无论我的格式如何,我都会不断收到此错误,我什至直接从 Microsoft 文档复制。知道有什么问题吗?>
https://docs.microsoft.com/en-us/office/vba/api/powerpoint.printoptions
错误:
C:\Windows\system32>cscript.exe C:\tmp\print_ppt.vbs
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.
C:\tmp\print_ppt.vbs(26, 9) Microsoft PowerPoint 2016: PrintOptions.OutputType : Invalid enumeration value.
代码:
Dim objPPT
Dim objPresentation
Dim objPrintOptions
Set objPPT = CreateObject("PowerPoint.Application")
objPPT.Visible = True
'Presentations.Open "filename", boolReadOnly, boolOpenUntitled, boolWithWindow
Set objPresentation = objPPT.Presentations.Open("C:\tmp\test.pptx",msoTrue,,msoFalse)
Set objPrintOptions = objPresentation.PrintOptions
objPrintOptions.PrintInBackground = False
'https://docs.microsoft.com/en-us/office/vba/api/powerpoint.printoptions.outputtype
'objPrintOptions.OutputType = ppPrintOutputSixSlideHandouts
'objPresentation.PrintOut
With objPresentation
With .PrintOptions
.NumberOfCopies = 2
.Collate = False
.PrintColorType = ppPrintColor
.PrintHiddenSlides = True
.FitToPage = True
.FrameSlides = True
.OutputType = ppPrintOutputSlides
End With
.PrintOut
End With
objPresentation.PrintOptions.PrintInBackground = True
objPPT.Quit
Set objPPT = nothing
VBA和VBScript很相似,但又不一样。今晚这本书对我来说是一本很好的读物,让我开始看到一些“小”差异,如果您熟悉 VBA 并期望 VBScript 也能同样工作,这些差异会让您头疼。
特别是关于如何 VBScript does not support named arguments.
这与属性将与 VBScript 一起工作的类似情况,但是 VBA 中的语法有多个选项,而 VBScript 中只有一个可以工作。
在这种情况下,它使用的是数值。
另一个例子是我的行w/
'Presentations.Open "filename", boolReadOnly, boolOpenUntitled, boolWithWindow
Set objPresentation = objPPT.Presentations.Open("C:\tmp\test.pptx",msoTrue,,msoFalse)
这是使用 positional
个参数与 named
个值对。
这是我找到该选项的数字版本的地方,现在将一些逻辑编写到我的脚本中,以便最终用户可以传递像 4
这样的参数并期望 4Slides/Page
.
https://docs.microsoft.com/en-us/office/vba/api/PowerPoint.PpPrintOutputType
With objPresentation
With .PrintOptions
.PrintInBackground = False
'https://docs.microsoft.com/en-us/office/vba/api/PowerPoint.PpPrintOutputType
'https://docs.microsoft.com/en-us/office/vba/api/powerpoint.printoptions.outputtype
.OutputType = 8
End With
'.PrintOut
.PrintOptions.PrintInBackground = True
End With
我可以通过 vbscript 打开 pptx 文件并打印它,但我终究无法获得 OutputType
集。无论我的格式如何,我都会不断收到此错误,我什至直接从 Microsoft 文档复制。知道有什么问题吗?>
https://docs.microsoft.com/en-us/office/vba/api/powerpoint.printoptions
错误:
C:\Windows\system32>cscript.exe C:\tmp\print_ppt.vbs
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.
C:\tmp\print_ppt.vbs(26, 9) Microsoft PowerPoint 2016: PrintOptions.OutputType : Invalid enumeration value.
代码:
Dim objPPT
Dim objPresentation
Dim objPrintOptions
Set objPPT = CreateObject("PowerPoint.Application")
objPPT.Visible = True
'Presentations.Open "filename", boolReadOnly, boolOpenUntitled, boolWithWindow
Set objPresentation = objPPT.Presentations.Open("C:\tmp\test.pptx",msoTrue,,msoFalse)
Set objPrintOptions = objPresentation.PrintOptions
objPrintOptions.PrintInBackground = False
'https://docs.microsoft.com/en-us/office/vba/api/powerpoint.printoptions.outputtype
'objPrintOptions.OutputType = ppPrintOutputSixSlideHandouts
'objPresentation.PrintOut
With objPresentation
With .PrintOptions
.NumberOfCopies = 2
.Collate = False
.PrintColorType = ppPrintColor
.PrintHiddenSlides = True
.FitToPage = True
.FrameSlides = True
.OutputType = ppPrintOutputSlides
End With
.PrintOut
End With
objPresentation.PrintOptions.PrintInBackground = True
objPPT.Quit
Set objPPT = nothing
VBA和VBScript很相似,但又不一样。今晚这本书对我来说是一本很好的读物,让我开始看到一些“小”差异,如果您熟悉 VBA 并期望 VBScript 也能同样工作,这些差异会让您头疼。
特别是关于如何 VBScript does not support named arguments.
这与属性将与 VBScript 一起工作的类似情况,但是 VBA 中的语法有多个选项,而 VBScript 中只有一个可以工作。
在这种情况下,它使用的是数值。
另一个例子是我的行w/
'Presentations.Open "filename", boolReadOnly, boolOpenUntitled, boolWithWindow
Set objPresentation = objPPT.Presentations.Open("C:\tmp\test.pptx",msoTrue,,msoFalse)
这是使用 positional
个参数与 named
个值对。
这是我找到该选项的数字版本的地方,现在将一些逻辑编写到我的脚本中,以便最终用户可以传递像 4
这样的参数并期望 4Slides/Page
.
https://docs.microsoft.com/en-us/office/vba/api/PowerPoint.PpPrintOutputType
With objPresentation
With .PrintOptions
.PrintInBackground = False
'https://docs.microsoft.com/en-us/office/vba/api/PowerPoint.PpPrintOutputType
'https://docs.microsoft.com/en-us/office/vba/api/powerpoint.printoptions.outputtype
.OutputType = 8
End With
'.PrintOut
.PrintOptions.PrintInBackground = True
End With