私は、PowerPointプレゼンテーションの.mp4形式へのエクスポートの自動化を必要とするプロジェクトに取り組んでいます。PowerShellを使用してPowerPointを.mp4形式で保存する方法を理解しましたが、PowerShellのみを使用してビデオのスライドが画面に表示される秒数を変更する方法に関するドキュメントを見つけることができませんでした。
現在のコード:
$Application = New-Object -ComObject powerpoint.application
$Application.Visible = [Microsoft.Office.Core.MsoTriState]::msoTrue
$ThemePath = "C:\Users\Theme.potx"
$PPTXPath = "C:\Users\ExistingPresentation.pptx"
$SavePath = "C:\Users\MyPresentation.mp4"
$Presentation = $Application.Presentations.Open($ReportPath)
--Applies a theme for the slides
$Presentation.ApplyTemplate($ThemePath)
--Saves as a Video
$Presentation.SaveAs($SavePath, 39)
$Presentation.Close()
私がターゲットにしようとしているもの:
編集:メンバーを変更するために使用できるクラスのライブラリが含まれているように見えるWindowsPowerPoint内のライブラリを見つけました。そのうちの1つは「powerpoint.application」です。Theoが提案したとおり、理論的には次のスクリプトが可能ですが、代わりにエラーが発生します。
$SlideShowTransition = New-Object -ComObject powerpoint.SlideShowTransition
$SlideShowTransition.AdvanceOnTime = $True
$SlideShowTransition.AdvanceTime = 10
New-Object : Retrieving the COM class factory for component with CLSID {00000000-0000-0000-0000-000000000000} failed due to the following error: 80040154 Class not
registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
At line:1 char:13
+ $Whatever = New-Object -ComObject powerpoint.SlideShowTransition
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [New-Object], COMException
+ FullyQualifiedErrorId : NoCOMClassIdentified,Microsoft.PowerShell.Commands.NewObjectCommand
これは、環境から直接取得した別のスクリーンショットです。何らかの理由で、SlideShowTransitionが表示されません。参照がないかもしれません...?
$ Presentationを使用せずに$ SlideShowTransitionを作成するべきではないと思います。後者は実際のプレゼンテーションを表し、それがないと何も設定できないからです。ActivePresentationを使用して設定を行う方法
については、MS公式ドキュメントの例を参照してください。
仕組み:左側の検索ボックスでActivePresentationを検索すると、[アプリケーション]の下にあることがわかります。したがって、それを参照するためのパスはApplication.ActivePresentation.Slidesであり、Theoのメソッドを試すことができます。開いているプレゼンテーションは1つだけなので、アクティブなプレゼンテーションだと思います。そうでない場合は、$ Presentationをアクティブ化するために、ドキュメントをさらに掘り下げる必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加