

PowerShellにてPowerPointのファイルをPDFにエクスポートしたいです。  
下記のように書いてみましたが、PowerPoint.Application.PpFixedFormatType:TypeNameが上手く認識してくれません。

[code]

    $Path = ".\testpdf.pdf"
    $mtrue = [Microsoft.Office.Core.MsoTriState]::msoTrue
    $mfalse = [Microsoft.Office.Core.MsoTriState]::msoFalse
    $ppt = New-Object -ComObject PowerPoint.Application
    $pre = $ppt.Presentations.Open($Path,$mfalse,$mtrue, $mtrue)
    
    $FixedFormatType = [Microsoft.Office.Interop.PowerPoint.PpFixedFormatType]::ppFixedFormatTypePDF
    $pre.ExportAsFixedFormat($Path,$FixedFormatType)
    
[/code]

エラーとして下記のように表示されてしまいます。

[code]

    "ExportAsFixedFormat" の設定中に例外が発生しました: 型 "PpFixedFormatType" の "ppFixedFormatTypePDF" 値を型 "Object" に
    変換できません。
    発生場所 行:1 文字:1
    + $pre.ExportAsFixedFormat($Path , $FixedFormatType)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : NotSpecified: (:) [], MethodException
      + FullyQualifiedErrorId : RuntimeException
    
[/code]

`SaveAs`メソッドを使って、PDFにエクスポートできることは確認したのですが、`ExportAsFixedFormat`で失敗することが気になって仕方がないです。  
宜しくお願い致します。


CC BY-SA 4.0
2021-12-14T10:06:32.233
84131
2023-07-29T12:08:20.440
2023-07-29T12:08:20.440
44531
49496
question
windows powershell powerpoint
PoweShellにてPowerPointのファイルをPDFにエクスポートしたい。


コメントで頂いたリンクを参照してみて実験し、下記コードで出力成功しました。

MSのサイトでは省略可能ですが、必須になってそうな感じでしょうか？  
[MSのサイト](https://docs.microsoft.com/ja-
jp/office/vba/api/powerpoint.presentation.exportasfixedformat)

[code]

    $ppt = New-Object -ComObject PowerPoint.Application
        $mtrue = [Microsoft.Office.Core.MsoTriState]::msoTrue
        $mfalse = [Microsoft.Office.Core.MsoTriState]::msoFalse
        $pre = $ppt.Presentations.Open($Sfile,$mfalse,$mtrue, $mtrue)
    
        $FixedFormatType = [Microsoft.Office.Interop.PowerPoint.PpFixedFormatType]::ppFixedFormatTypePDF
        $Intent = [Microsoft.Office.Interop.PowerPoint.PpFixedFormatIntent]::ppFixedFormatIntentScreen
        $FrameSlides = $mfalse
        $HandoutOrder = [Microsoft.Office.Interop.PowerPoint.PpPrintHandoutOrder]::ppPrintHandoutVerticalFirst
        $OutputType = [Microsoft.Office.Interop.PowerPoint.PpPrintOutputType]::ppPrintOutputSlides
        $PrintHiddenSlides = $mfalse
    
        $sNUM = $pre.Slides.count
        $pre.PrintOptions.Ranges.Add(1,$sNUM)
        $PrintRange=$pre.PrintOptions.Ranges.Item(1)
    
        $pre.ExportAsFixedFormat($Path,$FixedFormatType,$Intent,$FrameSlides,$HandoutOrder,$OutputType,$PrintHiddenSlides,$PrintRange)
    
[/code]


CC BY-SA 4.0
2021-12-15T05:04:07.333
84148
2021-12-15T05:04:07.333
49496
84131
answer