PowerPointやExcelなどのOffice製品では、プロパティでタイトルを設定することができる。
Office製品だけで完結する資料を作る時にはあまり気にならないが、PDFにエクスポートする時にはプロパティのタイトルがPDFのタイトルとしてタブに表示されるので、最終的にPDFにするなら設定しておいた方が良い。
タイトルはファイル名と同じにしておくのが無難だが、ファイルの数が多いと一つ一つファイルを開いて直していくのは結構しんどい。。
そういうことをしなければいけないシチュエーションがあったのだが、ファイル数が多くて非常に面倒だったので、勉強がてらPowerShellで一括変更するスクリプトを作成してみた。
タイトルの変更後、PDFの出力までついでに実行するようにした。
$ppt = New-Object -ComObject PowerPoint.Application
# カレントディレクトリ配下にある拡張子「.pptx」のファイルが対象
Get-ChildItem -Recurse -Filter *.pptx | ForEach-Object {
$pres = $ppt.Presentations.Open($_.FullName)
# プロパティのタイトルをファイル名に変更
$pres.BuiltInDocumentProperties("title") = $pres.Name.substring(0, $pres.Name.length - 5)
$pres.Save()
# PDFに出力する 第二引数はファイルタイプ。PDFは32
$pres.SaveAs($_.FullName.Substring(0, $_.FullName.Length - 5), 32)
$pres.Close()
}
$ppt.Quit()
処理終了後にPowerPointのウィンドウが残ってしまうのが課題。。